-
Carga de
datos y selección de variables
library(haven)
library(labelled)
library(kableExtra)
cis
<- as.data.frame(read_sav("3303.sav"))
cis
<- remove_labels(cis)
cis
<- remove_attributes(cis,
"display_width")
library(dplyr)
cis
<- cis %>% select(SEXO,EDAD,CCAA,P0,P13,P18,P19,P20,INTENCIONG,INTENCIONGALTER,SIMPATIA,ESCIDEOL,ESCIDEOLPOLI_1,ESCIDEOLPOLI_2,ESCIDEOLPOLI_3,ESCIDEOLPOLI_4,ESCIDEOLPOLI_5,P25_1,P25_2,P25_3,P25_4,P25_5,PARTICIPACIONG,RECUVOTOG,CERCANIA,NIVELESTENTREV,RELIGION,ECIVIL,SITLAB,CLASESOCIAL,
PESO)
dim(cis)
-
Número de NAs y gráfico de
barras de los NAs
NAs
<- colSums(is.na(cis))
NAs
library(ggplot2)
library(ggthemes)
library(data.table)
library(DataExplorer)
plot_missing_2
<-
function
(data, group
= list(Muy_bajo = 0.05,
Bajo = 0.2,
Elevado = 0.8,
Muy_elevado
= 1),
geom_label_args
= list(), title = NULL,
ggtheme =
theme_gray(),
theme_config
= list(legend.position
= c("bottom"),
text=element_text(family="Times",
size=20),
plot.title =
element_text(face = "bold.italic",
hjust = -0.4,
color = "darkgray"
)))
{
pct_missing
<- Escala <- NULL
missing_value
<- data.table(profile_missing(data))
group
<- group[sort.list(unlist(group))]
invisible(lapply(seq_along(group),
function(i)
{
if
(i == 1)
{
missing_value[pct_missing
<= group[[i]],
`:=`(Escala,
names(group)[i])]
} else
{
missing_value[pct_missing
> group[[i
- 1]] & pct_missing
<=
group[[i]],
`:=`(Escala,
names(group)[i])]
}
}))
output
<- ggplot(missing_value,
aes_string(x = "feature",
y
= "num_missing",
fill = "Escala"))
+ geom_bar(stat = "identity")
+
scale_fill_manual("Escala",
values = c("Muy_bajo"="#E5F5F9","Bajo"="#99D8C9","Elevado"="#2CA25F","Muy_elevado"="firebrick2"))
+ coord_flip() + xlab("Atributos") +
ylab("Número
de NAs")
geom_label_args_list
<- list(mapping = aes(label
= paste0(round(100 *
pct_missing,
2), "%")))
output
<- output + do.call("geom_label",
c(geom_label_args_list,
geom_label_args))
class(output)
<- c("single",
class(output))
plotDataExplorer(plot_obj
= output, title
= title, ggtheme
= ggtheme,
theme_config
= theme_config)
}
cis_<-cis
colnames(cis_) <- c("Sexo",
"Edad", "Comunidad Autónoma", "Nacionalidad",
"Valoración Situación económica", "Confianza en el
presidente", "Confianza en la oposición", "Preferencia de
presidente", "Intención de voto", "Intención de voto alternativo",
"Simpatía partidista", "Ideología", "Ideología
PS", "Ideología PC", "Ideología PI", "Ideología
SA", "Ideología IA", "Valoración PS", "Valoración
PC", "Valoración PI", "Valoración SA",
"Valoración IA", "Participación electoral 2019",
"Recuerdo de voto 2019", "Cercanía partidista", "Nivel de estudios",
"Religión", "Estado civil", "Situación laboral",
"Clase social", "Pesos")
plot_missing_2(cis_,
ggtheme =
theme_classic(), title = "Valores
nulos (NA) por atributo")
-
Imputación de las variables
filtro con NAs complementarios
#Las
variables que tienen NAs son:
#
- P21a. INTENCIONGALTER -> Voto_alternativo_cod (1470)
#
- P22. SIMPATIA -> Simpatia_cod
(2347)
#
- P28a. NIVELESENTREV -> Estudios_cod (53)
#
- P26a. RECUVOTOG -> Recuerdo_voto_cod (521)
#Filtros
de pregunta Intención de voto alternativo:
#
Si P21 -> INTENCIONG NO ES:
#
- 77
#
- 96
#
- 97
#
- 98
#
- 99
II <- is.na(cis$INTENCIONGALTER)
table(II)
table(cis$INTENCIONG[II])
#
¿A qué valores corresponden esos NA en INTENCIONG?
table(cis$INTENCIONG[II])
#
Imputación con valores de INTENCIONG
for(i in 1:nrow(cis))
{
if(is.na(cis[i,"INTENCIONGALTER"])==TRUE)
{
cis[i,"INTENCIONGALTER"]=cis[i,"INTENCIONG"]
}
}
II <- is.na(cis$INTENCIONGALTER)
table(II)
#Filtros
pregunta Simpatía:
#
Si P21 -> INTENCIONG NO ES:
#-
77
#-
96
#-
97
#-
98
#-
99
#Errata
en el cuestionario. Las personas que responden a SIMPATÍA son las que no
responden a INTENCIONGALTER, es decir, las que responden a INTENCIONG.
II <- is.na(cis$SIMPATIA)
table(II)
table(cis$INTENCIONG[II])
table(cis$INTENCIONG[II=="FALSE"])
#Imputaremos
los valores de INTENCIONG en Simpatía
for(i in 1:nrow(cis))
{
if(is.na(cis[i,"SIMPATIA"])==TRUE)
{
cis[i,"SIMPATIA"]=cis[i,"INTENCIONG"]
}
}
II <- is.na(cis$SIMPATIA)
table(II)
#Filtros
nivel de estudios entrevistado:
#
Si P28 -> ¿Ha ido ud. a la escuela o cursado algún tipo de estudios? = 3 Sí
ha ido.
#Nueva
categoría/Sin estudios.
II <- is.na(cis$NIVELESTENTREV)
table(II)
#Los
imputaremos con valor 100 y posteriormente crearemos la categoría Sin estudios.
for(i in 1:nrow(cis))
{
if(is.na(cis[i,"NIVELESTENTREV"])==TRUE)
{
cis[i,"NIVELESTENTREV"]=100
}
}
#Filtros
recuerdo de voto:
#
Si P26 (PARTICIPACIONG) -> ¿Me podría decir si votó en las elecciones
generales del pasado 2019? = 1 o 7, Es decir que votó.
#
Nueva categoría -> No votó en las pasadas elecciones (2 al 9)
II <- is.na(cis$RECUVOTOG)
table(II)
table(cis$PARTICIPACIONG[II])
#Los
vamos a imputar con valor = 100 y luego lo cambiaremos en la codificació a la
categoría No votó
for(i in 1:nrow(cis))
{
if(is.na(cis[i,"RECUVOTOG"])==TRUE)
{
cis[i,"RECUVOTOG"]=100
}
}
-
Convertir a factor las variables
for(i in 1:(ncol(cis)))
{
if(class(cis[,i])=="numeric")
{
if(colnames(cis)[i]!="EDAD")
{
cis[,i]<-
as.factor(cis[,i])
}
}
}
-
Tabla de la Comunidad Autónoma
table(cis$CCAA)
cis$CCAA <- as.factor(cis$CCAA)
tabla_CCAA_cod
<- rownames(table(cis$CCAA))
tabla_CCAA_cod
<- cbind(tabla_CCAA_cod, c("Andalucía",
"Aragón", "Asturias
(Principado de)", "Baleares
(Illes)", "Canarias",
"Cantabria", "Castilla-La
Mancha", "Castilla y León",
"Cataluña", "Comunitat
Valenciana", "Extremadura",
"Galicia", "Madrid
(Comunidad de)", "Murcia
(Región de)", "Navarra (Comunidad Floral
de)", "País Vasco",
"Rioja (La)", "Ceuta
(Ciudad Autónoma de)", "Melilla
(Ciudad Autónoma de)"))
colnames(tabla_CCAA_cod)
<- NULL
options(knitr.kable.NA = '')
kable(tabla_CCAA_cod, position = "center", booktabs = TRUE, align = "cl", caption = "<leftr><em>
P-: Comunidad autónoma del entrevistado </em></leftr>", escape = FALSE, font_size = 15)
%>%
kable_classic(full_width = F, html_font = "Times
New Roman")%>%
add_header_above (c("Valores
iniciales" = 2))%>%
column_spec(2, width = "6cm")%>%
column_spec(1,
width = "1cm")
-
Tabla del sexo del encuestado
cis$SEXO
<- as.factor(cis$SEXO)
tabla_sexo_cod
<- rownames(table(cis$SEXO))
tabla_sexo_cod
<- cbind(tabla_sexo_cod, c("Hombre",
"Mujer"))
colnames(tabla_sexo_cod)
<- NULL
options(knitr.kable.NA = '')
kable(tabla_sexo_cod, position = "center", booktabs = TRUE, align = "cl", caption = "<leftr><em>
P0a: Sexo </em></leftr>", escape = FALSE, font_size = 15)
%>%
kable_classic(full_width = F, html_font = "Times
New Roman")%>%
add_header_above (c("Valores
iniciales" = 2))%>%
column_spec(1, width = "1cm")%>%
column_spec(2, width = "2cm")
-
Recodificación
y tabla de la edad del encuestado
table(cis$EDAD)
cis
<- cis %>%
mutate(Edad_grupos
= case_when(EDAD >= 18
& EDAD <= 24 ~ 1,
EDAD
>= 25 & EDAD
<= 34
~ 2,
EDAD
>= 35 & EDAD
<= 44
~ 3,
EDAD
>= 45 & EDAD
<= 54
~ 4,
EDAD
>= 55 & EDAD
<= 64
~ 5,
EDAD
>= 65 ~ 6))
cis$Edad_grupos
<- as.factor(cis$Edad_grupos)
tabla_edad_cod
<- rownames(table(cis$Edad_grupos))
tabla_edad_cod
<- cbind(tabla_edad_cod, c("De
18 a 24 años", "De 25 a 34 años",
"De 35 a 44 años", "De 45 a 54
años", "De 55 a 64 años","Más
de 65 años"))
colnames(tabla_edad_cod)
<- NULL
options(knitr.kable.NA = '')
kable(tabla_edad_cod, position = "center", booktabs = TRUE, align = "cl", caption = "<leftr><em>
P0b: Edad </em></leftr>", escape = FALSE, font_size = 15)
%>%
kable_classic(full_width = F, html_font = "Times
New Roman")%>%
add_header_above (c("Recodificación" = 2))%>%
column_spec(2, width = "3cm")%>%
column_spec(1, width = "1cm")
-
Tabla de la
nacionalidad del encuestado
cis$P0
<- as.factor(cis$P0)
tabla_P0_cod
<- rownames(table(cis$P0))
tabla_P0_cod
<- cbind(tabla_P0_cod, c("Nacionalidad
española", "Nacionalidad española y
otra"))
colnames(tabla_P0_cod)
<- NULL
options(knitr.kable.NA = '')
kbl(tabla_P0_cod,
position = "center",align
= "cl", caption
= "<leftr><em> P0c: Nacionalidad del entrevistado
</em></leftr>", font_size
= 15) %>%
kable_classic(full_width = F, html_font = "Times
New Roman")%>%
add_header_above (c("Valores
iniciales" = 2))%>%
column_spec(1, width = "1cm")%>%
column_spec(2, width = "5cm")
-
Recodificación
y tabla del nivel de estudios del encuestado
tabla_estudios<-
rownames(table(cis$NIVELESTENTREV))[1:18]
tabla_estudios
<- cbind(tabla_estudios, c("Menos
de 5 años de escolarización","Primaria
(enseñanza primaria o 5º curso de EGB)","Formación
Profesional inicial","Secundaria
(ESO completa, EGB completa, Bachillerato Elemental) ",
"Formación Profesional de Grado Medio (FP I)",
"Bachillerato/COU/PREU (Bachillerato superior, BUP)",
"Formación Profesional de grado superior (FP II)",
"Arquitectura / Ingeniería Técnica (aparejador/a;
peritos/as)", "Diplomatura oficial",
"Estudios de Grado", "Licenciatura",
"Arquitectura/Ingeniería", "Máster
oficial universitario", "Doctorado",
"Títulos propios de posgrado (máster no oficial, etc.)",
"Otros estudios", "N.S/No
recuerda", "N.C"))
colnames(tabla_estudios)
<- NULL
cis$Estudios
<- NULL
cis
<- cis %>%
mutate(Estudios
= case_when(NIVELESTENTREV == 0
| NIVELESTENTREV == 1
| NIVELESTENTREV == 2
| NIVELESTENTREV == 100
~ 1,
NIVELESTENTREV
== 3 | NIVELESTENTREV == 4
| NIVELESTENTREV == 5
| NIVELESTENTREV == 6
| NIVELESTENTREV == 7 ~ 2,
NIVELESTENTREV
== 8 | NIVELESTENTREV == 9
| NIVELESTENTREV == 10
| NIVELESTENTREV == 11
| NIVELESTENTREV == 12
|
NIVELESTENTREV
== 13 | NIVELESTENTREV == 14
| NIVELESTENTREV == 15
~ 3,
NIVELESTENTREV
== 16 ~ 4,
NIVELESTENTREV
== 98 | NIVELESTENTREV == 99
~ 99))
cis$Estudios
<- as.factor(cis$Estudios)
tabla_estudios_cod
<- rownames(table(cis$Estudios))
tabla_estudios_cod
<- cbind(tabla_estudios_cod, c("Sin
estudios / Estudios Primarios", "Estudios
Secundarios / Formación Profesional", "Estudios
Superiores", "Otros estudios",
"NS/NC"))
colnames(tabla_estudios_cod)
<- NULL
library(zoo)
tabla_estudios
<- as.data.frame(tabla_estudios)
tabla_estudios_cod
<- as.data.frame(tabla_estudios_cod)
tabla_total_estudios
<- data.frame(tabla_estudios, cbind(zoo(, 1:nrow(tabla_estudios)),
as.zoo(tabla_estudios_cod)))
colnames(tabla_total_estudios)
<- NULL
tabla_total_estudios[,4]<-as.character(tabla_total_estudios[,4])
tabla_total_estudios[1,4]<-paste("Sin
estudios / Estudios Primarios", footnote_marker_number(1,
"html"))
tabla_total_estudios[2,4]<-paste("Estudios
Secundarios / Formación Profesional",
footnote_marker_number(2, "html"))
tabla_total_estudios[3,4]<-paste("Estudios
Superiores", footnote_marker_number(3,
"html"))
options(knitr.kable.NA = '')
kable(tabla_total_estudios,
position = "center",
booktabs = TRUE, align
= "clcl", caption
= "<left><em>P28a: Nivel de estudios alcanzado por la
persona entrevistada </em></left>", escape
= FALSE) %>%
kableExtra::footnote(number
= c("NA, Menos de 5 años de escolarización y Primaria (enseñanza
primaria o hasta 5o de EGB)", "Formación
Profesional inicial, Secundaria (Bachillerato Elemental, EGB completa, ESO
completa),
Formación Profesional de
grado medio (FP I), Bachillerato/ COU/ PREU (Bachillerato superior, BUP,
bachillerato)
y Formación Profesional de
grado superior (FP II)", "Universitarios
medios (diplomatura, arquitectura o ingeniería técnica) y Universitarios
superiores
(licenciatura, grado,
máster oficial, doctorado, títulos propios de postgrado no oficiales)"),
threeparttable=T)%>%
kable_classic(full_width = F, html_font = "Times
New Roman")%>%
add_header_above (c("Valores
iniciales" = 2, "Recodificación"
= 2))%>%
column_spec(c(2), width = "4cm")%>%
column_spec(c(4), width = "4cm")%>%
column_spec(c(1,3), width = "2cm")
-
Recodificación
y tabla de la situación laboral
tabla_situ<-
rownames(table(cis$SITLAB))
tabla_situ
<- cbind(tabla_situ, c("Trabaja",
"Jubilado/a o pensionista (trabajó con anterioridad)",
"Pensionista (no trabajó con anterioridad)",
"En paro y ha trabajado con anterioridad",
"En paro y en busca de su primer empleo",
"Estudiante", "Trabajo
doméstico no remunerado", "Otra
situación", "NC"))
colnames(tabla_situ)
<- NULL
cis$Situ <- NULL
cis
<- cis %>%
mutate(Situ =
case_when(SITLAB == 1 ~ 1,
SITLAB == 2 | SITLAB == 3 ~ 2,
SITLAB == 4 | SITLAB == 5 ~ 3,
SITLAB == 6 ~ 4,
SITLAB == 6 ~ 4,
SITLAB == 7 ~ 5,
SITLAB == 8 ~ 6,
SITLAB == 9 ~ 99))
cis$Situ <- as.factor(cis$Situ)
tabla_situ_cod
<- rownames(table(cis$Situ))
tabla_situ_cod
<- cbind(tabla_situ_cod, c("Trabajadores",
"Jubilados o pensionistas", "Parados",
"Estudiantes", "Trabajo
doméstico no remunerado", "Otra
situación", "NC"))
colnames(tabla_situ_cod)
<- NULL
tabla_situ
<- as.data.frame(tabla_situ)
tabla_situ_cod
<- as.data.frame(tabla_situ_cod)
tabla_total_situ
<- data.frame(tabla_situ, cbind(zoo(, 1:nrow(tabla_situ)),
as.zoo(tabla_situ_cod)))
colnames(tabla_total_situ)
<- NULL
tabla_total_situ[,4]<-as.character(tabla_total_situ[,4])
tabla_total_situ[2,4]<-paste("Jubilados
o pensionistas", footnote_marker_number(1,
"html"))
tabla_total_situ[3,4]<-paste("Parados",
footnote_marker_number(2, "html"))
options(knitr.kable.NA = '')
kable(tabla_total_situ,
position = "center",
booktabs = TRUE, align
= "clcl", caption
= "<lef><em>P31: Situación laboral de la persona
entrevistada </em></left>", escape
= FALSE) %>%
kableExtra::footnote(number
= c("Jubilado/a o pensionista (trabajó con anterioridad), Pensionista
(no trabajó con anterioridad)", "En paro
y ha trabajado con anterioridad, En paro y en busca de su primer empleo"))%>%
kable_classic(full_width = F, html_font = "Times
New Roman")%>%
add_header_above (c("Valores
iniciales" = 2, "Recodificación"
= 2))
-
Recodificación
y tabla de la religión del encuestado
tabla_religion<- rownames(table(cis$RELIGION))
tabla_religion <- cbind(tabla_religion, c("Católico/a
practicante", "Católico/a no practicante",
"Creyente de otra religión",
"Agnóstico/a",
"Indiferente, no creyente",
"Ateo/a", "NC"))
colnames(tabla_religion) <- NULL
cis$Religion_cod <- NULL
cis <- cis %>%
mutate(Religion_cod = case_when(RELIGION == 1 | RELIGION == 2 ~ 1,
RELIGION == 3 ~ 2,
RELIGION == 4 | RELIGION == 5 ~ 3,
RELIGION == 6 ~ 4,
RELIGION == 9 ~ 99))
cis$Religion_cod <- as.factor(cis$Religion_cod)
tabla_religion_cod <- rownames(table(cis$Religion_cod))
tabla_religion_cod <- cbind(tabla_religion_cod, c("Católico",
"Creyente de otra religión",
"No creyente",
"Ateo/a", "NC"))
colnames(tabla_religion_cod) <- NULL
tabla_religion <- as.data.frame(tabla_religion)
tabla_religion_cod <- as.data.frame(tabla_religion_cod)
tabla_total_religion <- data.frame(tabla_religion, cbind(zoo(, 1:nrow(tabla_religion)), as.zoo(tabla_religion_cod)))
colnames(tabla_total_religion) <- NULL
tabla_total_religion[,4]<-as.character(tabla_total_religion[,4])
tabla_total_religion[1,4]<-paste("Católico", footnote_marker_number(1,
"html"))
tabla_total_religion[3,4]<-paste("No
creyente", footnote_marker_number(2,
"html"))
options(knitr.kable.NA =
'')
kable(tabla_total_religion, position =
"center", booktabs = TRUE, align =
"clcl", caption =
"<left><em>P29: Religiosidad de la persona entrevistada
</em></left>", escape = FALSE) %>%
kableExtra::footnote(number = c("Católico/a
practicante, Católico/a no practicante",
"Agnóstico/a, Indiferente, no creyente"))%>%
kable_classic(full_width = F, html_font =
"Times New Roman") %>%
add_header_above (c("Valores
iniciales" = 2,
"Recodificación" = 2))%>%
column_spec(c(1,3), width =
"1cm")
-
Recodificación
y tabla del estado civil del encuestado
tabla_civil<- rownames(table(cis$ECIVIL))
tabla_civil <- cbind(tabla_civil, c("Casado/a",
"Soltero/a",
"Viudo/a",
"Separado/a",
"Divorciado/a",
"NC"))
colnames(tabla_civil) <- NULL
cis$civil_cod <- NULL
cis <- cis %>%
mutate(civil_cod = case_when(ECIVIL == 1 ~ 1,
ECIVIL == 2 | ECIVIL == 4 | ECIVIL == 5 ~ 2,
ECIVIL == 3 ~ 3,
ECIVIL == 9 ~ 99))
cis$civil_cod <- as.factor(cis$civil_cod)
tabla_civil_cod <- rownames(table(cis$civil_cod))
tabla_civil_cod <- cbind(tabla_civil_cod, c("Casado/a",
"Soltero/a",
"Viudo/a",
"NC"))
colnames(tabla_civil_cod) <- NULL
tabla_civil <- as.data.frame(tabla_civil)
tabla_civil_cod <- as.data.frame(tabla_civil_cod)
tabla_total_civil <- data.frame(tabla_civil, cbind(zoo(, 1:nrow(tabla_civil)), as.zoo(tabla_civil_cod)))
colnames(tabla_total_civil) <- NULL
tabla_total_civil[,4]<-as.character(tabla_total_civil[,4])
tabla_total_civil[2,4]<-paste("Soltero/a", footnote_marker_number(1,
"html"))
options(knitr.kable.NA = '')
kable(tabla_total_civil, position =
"center", booktabs = TRUE, align =
"clcl", caption =
"<leftr><em>P30: Estado civil de la persona entrevistada
</em></left>", escape = FALSE) %>%
kableExtra::footnote(number = c("Soltero/a,
Divorciado/a, Separado/a"))%>%
kable_classic(full_width = F, html_font =
"Times New Roman")%>%
add_header_above (c("Valores
iniciales" = 2,
"Recodificación" = 2))%>%
column_spec(c(2,4), width = "3cm")%>%
column_spec(c(1,3), width = "1cm")
-
Recodificación
y tabla de la clase social del encuestado
tabla_clase<-
rownames(table(cis$CLASESOCIAL))
tabla_clase
<- cbind(tabla_clase, c("Clase
alta", "Clase media-alta",
"Clase media-media", "Clase
media-baja", "Calse trabajadora/obrera",
"Clase pobre", "Proletariado",
"A los/as de abajo", "Excluidos/as","A
la gente común", "Clase
baja", "Otras",
"No cree en las clases", "No
sabe, duda", "NC"))
colnames(tabla_clase)
<- NULL
cis$clase_cod
<- NULL
cis
<- cis %>%
mutate(clase_cod =
case_when(CLASESOCIAL == 1 ~ 1,
CLASESOCIAL
== 2 | CLASESOCIAL == 3
| CLASESOCIAL == 4
~ 2,
CLASESOCIAL
== 5 | CLASESOCIAL == 6
| CLASESOCIAL == 8
| CLASESOCIAL == 9
| CLASESOCIAL == 10
| CLASESOCIAL == 11
| CLASESOCIAL == 12 ~
3,
CLASESOCIAL
== 96 ~ 4,
CLASESOCIAL
== 97 ~ 5,
CLASESOCIAL
== 98 | CLASESOCIAL == 99
~ 99))
cis$clase_cod
<- as.factor(cis$clase_cod)
tabla_clase_cod
<- rownames(table(cis$clase_cod))
tabla_clase_cod
<- cbind(tabla_clase_cod, c("Clase
alta", "Clase media",
"Clase baja", "Otra
clase", "No cree en las clases",
"NS/NC"))
colnames(tabla_clase_cod)
<- NULL
tabla_clase
<- as.data.frame(tabla_clase)
tabla_clase_cod
<- as.data.frame(tabla_clase_cod)
tabla_total_clase
<- data.frame(tabla_clase, cbind(zoo(, 1:nrow(tabla_clase)),
as.zoo(tabla_clase_cod)))
colnames(tabla_total_clase)
<- NULL
tabla_total_clase[,4]<-as.character(tabla_total_clase[,4])
tabla_total_clase[2,4]<-paste("Clase
media", footnote_marker_number(1,
"html"))
tabla_total_clase[3,4]<-paste("Clase
baja", footnote_marker_number(2,
"html"))
options(knitr.kable.NA
= '')
kable(tabla_total_clase,
position = "center",
booktabs = TRUE, align
= "clcl", caption
= "<left><em>P32: Clase social subjetiva de la persona
entrevistada </left></em>", escape
= FALSE) %>%
kableExtra::footnote(number
= c("Clase media-alta, Clase media-media, Clase media-baja",
"Clase trabajadora/obrera, Clase pobre, Proletariado, A los/as de
abajo,
Excluidos/as, A la gente
común, Clase baja "))%>%
kable_classic(full_width = F, html_font = "Times
New Roman")%>%
add_header_above (c("Valores
iniciales" = 2, "Recodificación"
= 2))%>%
column_spec(c(2,4), width = "5cm")%>%
column_spec(c(1,3), width = "1cm")
-
Recodificación
y tabla de la intención de voto
tabla_voto<-
rownames(table(cis$INTENCIONG))
tabla_voto
<- cbind(tabla_voto, c("PP",
"PSOE", "Podemos",
"Ciudadanos", "IU",
"En Comú Podem", "Compromís",
"ERC", "JxCat",
"EAJ-PNV", "EH
Bildu", "CC-PNC",
"Nueva Canarias", "PACMA",
"VOX", "CUP",
"Los Verdes", "Unidas
Podemos", "PAR",
"BNG","Partido
Libertario", "CHA",
"Geroa Bai", "PCPE",
"PRC", "UPL",
"Más País", "En
Común-Unidas Podemos", "Teruel
Existe", "PDeCAT",
"Voto nulo", "Otro
partido", "En blanco",
"No votaría", "No sabe
todavía", "N.C"))
colnames(tabla_voto)
<- NULL
cis$Voto_cod
<- NULL
cis
<- cis %>%
mutate(Voto_cod =
case_when(INTENCIONG == 1 ~ 1,
INTENCIONG
== 2 ~ 2,
INTENCIONG
== 3 | INTENCIONG == 5
| INTENCIONG == 6
|
INTENCIONG
== 22 | INTENCIONG == 21
| INTENCIONG == 67
~ 3,
INTENCIONG
== 4 ~ 4,
INTENCIONG
== 18 ~ 5,
INTENCIONG
== 8 ~ 6,
INTENCIONG
== 9 ~ 7,
INTENCIONG
== 11 ~ 8,
INTENCIONG
== 7 | INTENCIONG == 12
| INTENCIONG == 13
| INTENCIONG == 14
| INTENCIONG == 16
| INTENCIONG == 17
| INTENCIONG == 18
| INTENCIONG == 19
|INTENCIONG == 20
| INTENCIONG == 23
| INTENCIONG == 24
| INTENCIONG == 29
| INTENCIONG == 30
| INTENCIONG == 34
| INTENCIONG == 39
| INTENCIONG == 43
| INTENCIONG == 44
| INTENCIONG == 50
| INTENCIONG == 68
| INTENCIONG == 71
| INTENCIONG == 95
| INTENCIONG == 96 ~ 9,
INTENCIONG
== 77 | INTENCIONG == 97
~ 10,
INTENCIONG
== 98 | INTENCIONG == 99
~ 99))
cis$Voto_cod
<- as.factor(cis$Voto_cod)
tabla_Voto_cod
<- rownames(table(cis$Voto_cod))
tabla_Voto_cod
<- cbind(tabla_Voto_cod, c("PP",
"PSOE", "Podemos",
"Ciudadanos", "VOX",
"ERC", "JxCat",
"EAJ-PNV", "Otros",
"Abstención", "NS/NC"))
colnames(tabla_Voto_cod)
<- NULL
tabla_voto
<- as.data.frame(tabla_voto)
tabla_Voto_cod
<- as.data.frame(tabla_Voto_cod)
tabla_total_Voto
<- data.frame(tabla_voto, cbind(zoo(, 1:nrow(tabla_voto)),
as.zoo(tabla_Voto_cod)))
colnames(tabla_total_Voto)
<- NULL
tabla_total_Voto[,4]<-as.character(tabla_total_Voto[,4])
tabla_total_Voto[3,4]<-paste("Podemos",
footnote_marker_number(1, "html"))
options(knitr.kable.NA = '')
kable(tabla_total_Voto,
position = "center",
booktabs = TRUE, align
= "clcl", caption
= " <left><br><em> P21: Intención de voto en
nuevas elecciones generales </em></center>",
escape = FALSE, )%>%
kableExtra::footnote(number
= c("Formado por la coalición de En Comú Podem, IU, EQUO, Unidas
Podemos,
En Común -
Unidas Podemos"))%>%
kable_classic(full_width = F, html_font = "Times
New Roman")%>%
add_header_above (c("Valores
iniciales" = 2, "Recodificación"
= 2))%>%
column_spec(c(2), width = "5cm")%>%
column_spec(c(1,3), width = "1cm")
-
Recodificación
y tabla de la intención de voto alternativo
#Misma
codificación que Intención de voto, pero con una nueva categoría: No cambiaría
su voto
cis$Voto_alternativo_cod
<- NULL
cis
<- cis %>%
mutate(Voto_alternativo_cod
= case_when(INTENCIONGALTER == 1
~ 1,
INTENCIONGALTER
== 2 ~ 2,
INTENCIONGALTER
== 3 | INTENCIONGALTER
== 5 | INTENCIONGALTER
== 6 |
INTENCIONGALTER
== 22 | INTENCIONGALTER
== 21 | INTENCIONGALTER
== 67 ~ 3,
INTENCIONGALTER
== 4 ~ 4,
INTENCIONGALTER
== 18 ~ 5,
INTENCIONGALTER
== 8 ~ 6,
INTENCIONGALTER
== 9 ~ 7,
INTENCIONGALTER
== 11 ~ 8,
INTENCIONGALTER
== 7 | INTENCIONGALTER
== 12 | INTENCIONGALTER
== 13 | INTENCIONGALTER
== 14 | INTENCIONGALTER
== 16 | INTENCIONGALTER
== 17 | INTENCIONGALTER
== 18 | INTENCIONGALTER
== 19 |INTENCIONGALTER
== 20 | INTENCIONGALTER
== 24 |INTENCIONGALTER
== 25 |INTENCIONGALTER
== 27 | INTENCIONGALTER
== 29 | INTENCIONGALTER
== 30 | INTENCIONGALTER
== 38 |INTENCIONGALTER
== 39 | INTENCIONGALTER
== 43 | INTENCIONGALTER
== 44 | INTENCIONGALTER
== 50 | INTENCIONGALTER
== 61 | INTENCIONGALTER
== 68 | INTENCIONGALTER
== 71 |INTENCIONGALTER
== 72 | INTENCIONGALTER
== 95 | INTENCIONGALTER
== 96 ~ 9,
INTENCIONGALTER
== 93 ~ 10,
INTENCIONGALTER
== 77 | INTENCIONGALTER
== 97 ~ 11,
INTENCIONGALTER
== 98 | INTENCIONGALTER
== 99 ~ 99))
tabla_voto_alternativo
<- rownames(table(cis$INTENCIONGALTER))
tabla_voto_alternativo
<- cbind(tabla_voto_alternativo, c("PP",
"PSOE", "Podemos",
"Ciudadanos", "IU",
"En Comú Podem", "Compromís",
"ERC", "JxCat",
"EAJ-PNV", "EH
Bildu", "CC-PNC",
"Nueva Canarias", "PACMA",
"VOX", "CUP",
"Los Verdes", "Unidas Podemos",
"EQUO", "BNG","MÉS",
"Escaños en Blanco", "Partido
Libertario", "CHA",
"UPyD", "PCPE",
"PRC", "UPL",
"Más País", "Democaracia
Nacional", "En Común-Unidas Podemos",
"Teruel Existe", "PDeCAT",
"PNC (Partido Nacionalista Catalán)",
"Voto nulo", "No votaría
a ningún otro partido", "Otro
partido", "En blanco",
"No votaría", "N.S",
"N.C"))
colnames(tabla_voto_alternativo)
<- NULL
cis$Voto_alternativo_cod
<- as.factor(cis$Voto_alternativo_cod)
tabla_Voto_alternativo_cod
<- rownames(table(cis$Voto_alternativo_cod))
tabla_Voto_alternativo_cod
<- cbind(tabla_Voto_alternativo_cod, c("PP",
"PSOE", "Podemos",
"Ciudadanos", "VOX",
"ERC", "JxCat",
"EAJ-PNV", "Otros",
"No votaría a ningún otro partido", "Abstención",
"NS/NC"))
colnames(tabla_Voto_cod)
<- NULL
tabla_total_Voto_alternativo
<- data.frame(tabla_voto_alternativo, cbind(zoo(, 1:nrow(tabla_voto_alternativo)),
as.zoo(tabla_Voto_alternativo_cod)))
colnames(tabla_total_Voto_alternativo)
<- NULL
tabla_total_Voto_alternativo[,4]<-as.character(tabla_total_Voto_alternativo[,4])
tabla_total_Voto_alternativo[3,4]<-paste("Podemos",
footnote_marker_number(1, "html"))
options(knitr.kable.NA = '')
kable(tabla_total_Voto_alternativo, position = "center", booktabs = TRUE, align = "clcl", caption = "<leftr><em>P21a:
Voto alternativo en futuras elecciones generales </em></left>", escape = FALSE, )
%>%
kableExtra::footnote(number
= c("Formado por la coalición de En Comú Podem, IU, EQUO, Unidas
Podemos,
En Común -
Unidas Podemos"))%>%
kable_classic(full_width = F, html_font = "Times
New Roman")%>%
add_header_above (c("Valores
iniciales" = 2, "Recodificación"
= 2))%>%
column_spec(c(1,3), width = "1cm")
-
Recodificación
y tabla de la simpatía partidista
cis$Simpatia_cod
<- NULL
cis
<- cis %>%
mutate(Simpatia_cod =
case_when(SIMPATIA == 1 ~ 1,
SIMPATIA
== 2 ~ 2,
SIMPATIA
== 3 | SIMPATIA == 5
| SIMPATIA == 6 |
SIMPATIA
== 22 | SIMPATIA == 21
| SIMPATIA == 67 ~ 3,
SIMPATIA
== 4 ~ 4,
SIMPATIA
== 18 ~ 5,
SIMPATIA
== 8 ~ 6,
SIMPATIA
== 9 ~ 7,
SIMPATIA
== 11 ~ 8,
SIMPATIA
== 7 | SIMPATIA == 12
| SIMPATIA == 13 | SIMPATIA
== 14 | SIMPATIA == 16
| SIMPATIA == 17 | SIMPATIA
== 18 | SIMPATIA == 19
|SIMPATIA == 20 | SIMPATIA
== 24 |SIMPATIA == 25
|SIMPATIA == 27 | SIMPATIA
== 29 | SIMPATIA == 30
| SIMPATIA == 34 |SIMPATIA
== 38 |SIMPATIA == 39
| SIMPATIA == 40 | SIMPATIA
== 43 | SIMPATIA == 44
| SIMPATIA == 50 | SIMPATIA
== 61 | SIMPATIA == 68
| SIMPATIA == 71 |SIMPATIA
== 72 | SIMPATIA == 95
~ 9,
SIMPATIA
== 97 ~ 10,
SIMPATIA
== 98 | SIMPATIA == 99
~ 99))
-
Recodificación
y tabla del recuerdo de voto en las anteriores elecciones
cis$Recuerdo_cod
<- NULL
cis
<- cis %>%
mutate(Recuerdo_cod
= case_when(RECUVOTOG == 1
~ 1,
RECUVOTOG
== 2 ~ 2,
RECUVOTOG
== 3 | RECUVOTOG == 5
| RECUVOTOG == 6 |
RECUVOTOG
== 22 | RECUVOTOG == 21
| RECUVOTOG == 67 ~ 3,
RECUVOTOG
== 4 ~ 4,
RECUVOTOG
== 18 ~ 5,
RECUVOTOG
== 8 ~ 6,
RECUVOTOG
== 9 ~ 7,
RECUVOTOG
== 11 ~ 8,
RECUVOTOG
== 7 | RECUVOTOG == 12
| RECUVOTOG == 13 | RECUVOTOG
== 14 | RECUVOTOG == 16
| RECUVOTOG == 17 | RECUVOTOG
== 18 | RECUVOTOG == 19
|RECUVOTOG == 20 | RECUVOTOG
== 22 | RECUVOTOG == 24
|RECUVOTOG == 25 |RECUVOTOG
== 27 | RECUVOTOG == 29
| RECUVOTOG == 30 | RECUVOTOG
== 38 |RECUVOTOG == 39
| RECUVOTOG == 40 | RECUVOTOG
== 43 | RECUVOTOG == 44
| RECUVOTOG == 50 | RECUVOTOG
== 61 | RECUVOTOG == 68
| RECUVOTOG == 71 |RECUVOTOG
== 72 | RECUVOTOG == 95
| RECUVOTOG == 96 ~ 9,
RECUVOTOG
== 77 ~ 10,
RECUVOTOG
== 100 ~ 11,
RECUVOTOG
== 99 | RECUVOTOG == 98
~ 99))
cis$Recuerdo_cod
<- as.factor(cis$Recuerdo_cod)
tabla_Recuerdo_cod
<- rownames(table(cis$Recuerdo_cod))
tabla_Recuerdo_cod
<- cbind(tabla_Recuerdo_cod, c("PP",
"PSOE", "Podemos",
"Ciudadanos", "VOX",
"ERC", "JxCat",
"EAJ-PNV", "Otros",
"Abstención", "No fué a
votar", "NS/NC"))
colnames(tabla_Recuerdo_cod)
<- NULL
tabla_total_Recuerdo
<- data.frame(tabla_voto, cbind(zoo(, 1:nrow(tabla_voto)),
as.zoo(tabla_Recuerdo_cod)))
colnames(tabla_total_Recuerdo)
<- NULL
tabla_total_Recuerdo[,4]<-as.character(tabla_total_Recuerdo[,4])
tabla_total_Recuerdo[3,4]<-paste("Podemos",
footnote_marker_number(1, "html"))
tabla_total_Recuerdo[11,4]<-paste("No
fué a votar", footnote_marker_number(2,
"html"))
options(knitr.kable.NA = '')
kable(tabla_total_Recuerdo,
position = "center",
booktabs = TRUE, align
= "clcl", caption
= " <left><em>P26a: Recuerdo de voto en las elecciones
generales (nov. 2019) </em></left>", escape
= FALSE, ) %>%
kableExtra::footnote(number
= c("Formado por la coalición de En Comú Podem, IU, EQUO, Unidas
Podemos,
En Común - Unidas
Podemos", "Formado por NAs de la variable
inicial"))%>%
kable_classic(full_width = F, html_font = "Times
New Roman")%>%
add_header_above (c("Valores
iniciales" = 2, "Recodificación"
= 2))%>%
column_spec(2, width = "6cm")%>%
column_spec(c(1,3), width = "1cm")
-
Recodificación
y tabla de la cercanía partidista
cis$Cercania_cod
<- NULL
cis
<- cis %>%
mutate(Cercania_cod
= case_when(CERCANIA == 1
~ 1,
CERCANIA
== 2 ~ 2,
CERCANIA
== 3 | CERCANIA == 5
| CERCANIA == 6 |
CERCANIA
== 22 | CERCANIA == 21
| CERCANIA == 67 ~ 3,
CERCANIA
== 4 ~ 4,
CERCANIA
== 18 ~ 5,
CERCANIA
== 8 ~ 6,
CERCANIA
== 9 ~ 7,
CERCANIA
== 11 ~ 8,
CERCANIA
== 7 | CERCANIA == 12
| CERCANIA == 13 | CERCANIA
== 14 | CERCANIA == 16
| CERCANIA == 17 | CERCANIA
== 18 | CERCANIA == 19
|CERCANIA == 20 | CERCANIA
== 24 |CERCANIA == 25
| CERCANIA == 26 | CERCANIA
== 29 | CERCANIA == 30
| CERCANIA == 34 |CERCANIA
== 38 | CERCANIA == 40
| CERCANIA == 42 |CERCANIA
== 43 | CERCANIA == 44
| CERCANIA == 50 | CERCANIA
== 67 | CERCANIA == 68
| CERCANIA == 71 |CERCANIA
== 72 | CERCANIA == 95
~ 9,
CERCANIA
== 97 ~ 10,
CERCANIA
== 99 | CERCANIA == 98
~ 99))
tabla_cercania
<- rownames(table(cis$CERCANIA))
tabla_cercania
<- cbind(tabla_cercania, c("PP",
"PSOE", "Podemos",
"Ciudadanos", "IU",
"En Comú Podem", "Compromís",
"ERC", "JxCat",
"EAJ-PNV", "EH
Bildu", "CC-PNC",
"UPN", "Nueva
Canarias", "PACMA",
"VOX", "CUP",
"Los Verdes", "Unidas
Podemos", "EQUO",
"BNG","Falange
Española de las JONS", "Partido Libertario",
"CHA", "Geroa
Bai", "UPyD",
"PI", "IGRE",
"PRC", "UPL",
"Más País", "En
Común-Unidas Podemos", "Teruel
Existe", "PDeCAT",
"PNC (Partido Nacionalista Catalán)",
"Otro partido", "Ninguno",
"N.S", "N.C"))
colnames(tabla_cercania)
<- NULL
cis$Cercania_cod
<- as.factor(cis$Cercania_cod)
tabla_Cercania_cod
<- rownames(table(cis$Cercania_cod))
tabla_Cercania_cod
<- cbind(tabla_Cercania_cod, c("PP",
"PSOE", "Podemos",
"Ciudadanos", "VOX",
"ERC", "JxCat",
"EAJ-PNV", "Otros",
"Ninguno", "NS/NC"))
colnames(tabla_Cercania_cod)
<- NULL
tabla_total_Cercania
<- data.frame(tabla_cercania, cbind(zoo(, 1:nrow(tabla_cercania)),
as.zoo(tabla_Cercania_cod)))
colnames(tabla_total_Cercania)
<- NULL
tabla_total_Cercania[,4]<-as.character(tabla_total_Cercania[,4])
tabla_total_Cercania[3,4]<-paste("Podemos",
footnote_marker_number(1, "html"))
options(knitr.kable.NA = '')
kable(tabla_total_Cercania,
position = "center",
booktabs = TRUE, align
= "clcl", caption
= "<left><br><em>P22: Partido político por el que
siente más simpatía </em></center>
<left><br><em>P27: Partido que considera más cercano a sus
ideas </em></center>", escape
= FALSE, ) %>%
kableExtra::footnote(number
= c("Formado por la coalición de En Comú Podem, IU, EQUO, Unidas
Podemos,
En Común -
Unidas Podemos"))%>%
kable_classic(full_width = F, html_font = "Times
New Roman")%>%
add_header_above (c("Valores
iniciales" = 2, "Recodificación"
= 2))%>%
column_spec(c(1,3), width = "1cm")
-
Recodificación
y tabla de la valoración de la situación económica de España
tabla_situ_eco<-
rownames(table(cis$P13))
tabla_situ_eco
<- cbind(tabla_situ_eco, c("Muy
buena", "Buena",
"Regular", "Mala",
"Muy mala", "NS",
"NC"))
colnames(tabla_situ_eco)
<- NULL
cis$Situ_eco_cod
<- NULL
cis
<- cis %>%
mutate(Situ_eco_cod=
case_when(P13 == 1 ~ 1,
P13
== 2 ~ 2,
P13
== 3 ~ 3,
P13
== 4 ~ 4,
P13
== 5 ~ 5,
P13
== 8 | P13 == 9
~ 99))
cis$Situ_eco_cod
<- as.factor(cis$Situ_eco_cod)
cis$Situ_eco_cod
<- as.factor(cis$Situ_eco_cod)
tabla_Situ_eco_cod
<- rownames(table(cis$Situ_eco_cod))
tabla_Situ_eco_cod
<- cbind(tabla_Situ_eco_cod, c("Muy
buena", "Buena",
"Regular", "Mala",
"Muy mala", "NS/NC"))
colnames(tabla_Situ_eco_cod)
<- NULL
tabla_Situ_eco_cod
<- as.data.frame(tabla_Situ_eco_cod)
tabla_total_Situ_eco
<- data.frame(tabla_situ_eco, cbind(zoo(, 1:nrow(tabla_situ_eco)),
as.zoo(tabla_Situ_eco_cod)))
colnames(tabla_total_Situ_eco)
<- NULL
options(knitr.kable.NA = '')
kable(tabla_total_Situ_eco,
position = "center",
booktabs = TRUE, align
= "clcl", caption
= "<left><br><em> P13: Valoración de la situación
económica general de España </em></center>",
escape = FALSE) %>%
kable_classic(full_width = F, html_font = "Times
New Roman")%>%
add_header_above (c("Valores
iniciales" = 2, "Recodificación"
= 2))%>%
column_spec(c(1,3), width = "1cm")%>%
column_spec(c(2,4), width = "3cm")
-
Recodificación
y tabla de la confianza en el actual presidente del gobierno
tabla_conf_presi<-
rownames(table(cis$P18))
tabla_conf_presi
<- cbind(tabla_conf_presi, c("Mucha
confianza", "Bastante confianza",
"Poca confianza", "Ninguna
confianza", "NS",
"NC"))
colnames(tabla_conf_presi)
<- NULL
cis$Conf_presi_cod
<- NULL
cis
<- cis %>%
mutate(Conf_presi_cod=
case_when(P18 == 1 ~ 1,
P18 == 2 ~ 2,
P18 == 3 ~ 3,
P18 == 4 ~ 4,
P18 == 8 | P18 == 9 ~ 99))
cis$Conf_presi_cod
<- as.factor(cis$Conf_presi_cod)
cis$Conf_presi_cod
<- as.factor(cis$Conf_presi_cod)
tabla_Conf_presi_cod
<- rownames(table(cis$Conf_presi_cod))
tabla_Conf_presi_cod
<- cbind(tabla_Conf_presi_cod, c("Mucha
confianza", "Bastante confianza",
"Poca confianza", "Ninguna
confianza", "NS/NC"))
colnames(tabla_Conf_presi_cod)
<- NULL
tabla_Conf_presi_cod
<- as.data.frame(tabla_Conf_presi_cod)
tabla_total_Conf_presi
<- data.frame(tabla_conf_presi, cbind(zoo(, 1:nrow(tabla_conf_presi)),
as.zoo(tabla_Conf_presi_cod)))
colnames(tabla_total_Conf_presi)
<- NULL
options(knitr.kable.NA = '')
kable(tabla_total_Conf_presi,
position = "center",
booktabs = TRUE, align
= "clcl", caption
= "<left><br><em> P18: Grado de confianza en el
actual presidente: Pedro Sánchez </em></center>
<left><br><em> P19: Grado de confianza en el principal líder
de la oposición: Pablo Casado (PP) </em></center> ",
escape = FALSE) %>%
kable_classic(full_width = F, html_font = "Times
New Roman")%>%
add_header_above (c("Valores
iniciales" = 2, "Recodificación"
= 2))%>%
column_spec(c(1,3), width = "1cm")%>%
column_spec(c(2,4), width = "4cm")
-
Recodificación
de la confianza en el líder de la oposición
tabla_conf_opo<-
rownames(table(cis$P19))
tabla_conf_opo
<- cbind(tabla_conf_opo, c("Mucha
confianza", "Bastante confianza",
"Poca confianza", "Ninguna
confianza", "NS",
"NC"))
colnames(tabla_conf_opo)
<- NULL
cis$Conf_opo_cod
<- NULL
cis
<- cis %>%
mutate(Conf_opo_cod=
case_when(P19 == 1 ~ 1,
P19
== 2 ~ 2,
P19
== 3 ~ 3,
P19
== 4 ~ 4,
P19
== 8 | P19 == 9
~ 99))
cis$Conf_opo_cod
<- as.factor(cis$Conf_opo_cod)
-
Recodificación
y tabla de la preferencia como presidente del gobierno
tabla_pref_presi<-
rownames(table(cis$P20))
tabla_pref_presi
<- cbind(tabla_pref_presi, c("Pedro
Sánchez", "Pablo Casado","Santiago
Abascal", "Pablo Iglesias",
"Alberto Garzón", "Inés
Arrimadas", "Iñigo Errejón",
"Otro/a", "Ninguno/a",
"NS", "NC"))
colnames(tabla_pref_presi)
<- NULL
cis$Pref_presi_cod
<- NULL
cis
<- cis %>%
mutate(Pref_presi_cod=
case_when(P20 == 1 ~ 1,
P20 == 2 ~ 2,
P20 == 3 ~ 3,
P20 == 4 ~ 4,
P20 == 5 ~ 5,
P20 == 6 ~ 6,
P20 == 7 ~ 7,
P20 == 96 ~ 8,
P20 == 97 ~ 9,
P20 == 98 | P20 == 99 ~ 99))
cis$Pref_presi_cod
<- as.factor(cis$Pref_presi_cod)
cis$Pref_presi_cod
<- as.factor(cis$Pref_presi_cod)
tabla_Pref_presi_cod
<- rownames(table(cis$Pref_presi_cod))
tabla_Pref_presi_cod
<- cbind(tabla_Pref_presi_cod, c("Pedro
Sánchez", "Pablo Casado","Santiago
Abascal", "Pablo Iglesias",
"Alberto Garzón", "Inés
Arrimadas", "Iñigo Errejón",
"Otro/a", "Ninguno/a",
"NS/NC"))
colnames(tabla_Pref_presi_cod)
<- NULL
tabla_Pref_presi_cod
<- as.data.frame(tabla_Pref_presi_cod)
tabla_total_Pref_presi
<- data.frame(tabla_pref_presi, cbind(zoo(, 1:nrow(tabla_pref_presi)),
as.zoo(tabla_Pref_presi_cod)))
colnames(tabla_total_Pref_presi)
<- NULL
options(knitr.kable.NA = '')
kable(tabla_total_Pref_presi,
position = "center",
booktabs = TRUE, align
= "clcl", caption
= "<leftr><br><em> P20: Preferencia como
presidente del gobierno central </em></center> ",
escape = FALSE) %>%
kable_classic(full_width = F, html_font = "Times
New Roman")%>%
add_header_above (c("Valores
iniciales" = 2, "Recodificación"
= 2))%>%
column_spec(c(1,3), width = "1cm")%>%
column_spec(c(2,4), width = "4cm")
-
Recodificación
y tabla de la autoubicación ideológica
tabla_ideologia<-
rownames(table(cis$ESCIDEOL))
tabla_ideologia
<- cbind(tabla_ideologia, c("1
- Izquierda", "2",
"3", "4",
"5", "6",
"7", "8",
"9","10 -
Derecha", "NS",
"NC"))
colnames(tabla_ideologia)
<- NULL
cis$Ideologia_cod <- NULL
cis
<- cis %>%
mutate(Ideologia_cod=
case_when(ESCIDEOL == 1 ~ 1,
ESCIDEOL == 2 ~ 2,
ESCIDEOL == 3 ~ 3,
ESCIDEOL == 4 ~ 4,
ESCIDEOL == 5 ~ 5,
ESCIDEOL == 6 ~ 6,
ESCIDEOL == 7 ~ 7,
ESCIDEOL == 8 ~ 8,
ESCIDEOL == 9 ~ 9,
ESCIDEOL == 10 ~ 10,
ESCIDEOL == 98 | ESCIDEOL == 99 ~ 99))
cis$Ideologia_cod
<- as.factor(cis$Ideologia_cod)
cis$Ideologia_cod
<- as.factor(cis$Ideologia_cod)
tabla_Ideologia_cod
<- rownames(table(cis$Ideologia_cod))
tabla_Ideologia_cod
<- cbind(tabla_Ideologia_cod, c("1
- Izquierda", "2",
"3", "4",
"5", "6",
"7", "8",
"9","10 -
Derecha", "NS/NC"))
colnames(tabla_Ideologia_cod)
<- NULL
tabla_Ideologia_cod
<- as.data.frame(tabla_Ideologia_cod)
tabla_total_ideologia
<- data.frame(tabla_ideologia, cbind(zoo(, 1:nrow(tabla_ideologia)),
as.zoo(tabla_Ideologia_cod)))
colnames(tabla_total_ideologia)
<- NULL
options(knitr.kable.NA = '')
kable(tabla_total_ideologia, position = "center", booktabs = TRUE, align = "clcl", caption = "<left><em>P23:
Escala de autoubicación ideológica (1-10) </em></center>", escape = FALSE)
%>%
kable_classic(full_width = F, html_font = "Times
New Roman")%>%
add_header_above (c("Valores
iniciales" = 2, "Recodificación"
= 2))%>%
column_spec(c(1,3), width = "1cm")%>%
column_spec(c(2,4), width = "5cm")
-
Recodificación y tabla de la clasificación ideológica de los líderes
políticos
#Misma
codificación que ideología, nueva categoría -> No conoce
#Pedro Sánchez
cis$Ideologia_ps_cod
<- NULL
cis
<- cis %>%
mutate(Ideologia_ps_cod=
case_when(ESCIDEOLPOLI_1 == 1 ~ 1,
ESCIDEOLPOLI_1 == 2 ~ 2,
ESCIDEOLPOLI_1 == 3 ~ 3,
ESCIDEOLPOLI_1 == 4 ~ 4,
ESCIDEOLPOLI_1 == 5 ~ 5,
ESCIDEOLPOLI_1 == 6 ~ 6,
ESCIDEOLPOLI_1 == 7 ~ 7,
ESCIDEOLPOLI_1 == 8 ~ 8,
ESCIDEOLPOLI_1 == 9 ~ 9,
ESCIDEOLPOLI_1 == 10 ~ 10,
ESCIDEOLPOLI_1 == 97 ~ 11,
ESCIDEOLPOLI_1 == 98 | ESCIDEOLPOLI_1 == 99 ~ 99))
cis$Ideologia_ps_cod
<- as.factor(cis$Ideologia_ps_cod)
cis$Ideologia_pc_cod
<- NULL
cis
<- cis %>%
mutate(Ideologia_pc_cod=
case_when(ESCIDEOLPOLI_2 == 1 ~ 1,
ESCIDEOLPOLI_2 == 2 ~ 2,
ESCIDEOLPOLI_2 == 3 ~ 3,
ESCIDEOLPOLI_2 == 4 ~ 4,
ESCIDEOLPOLI_2 == 5 ~ 5,
ESCIDEOLPOLI_2 == 6 ~ 6,
ESCIDEOLPOLI_2 == 7 ~ 7,
ESCIDEOLPOLI_2 == 8 ~ 8,
ESCIDEOLPOLI_2 == 9 ~ 9,
ESCIDEOLPOLI_2 == 10 ~ 10,
ESCIDEOLPOLI_2 == 97 ~ 11,
ESCIDEOLPOLI_2
== 98 | ESCIDEOLPOLI_2 == 99
~ 99))
cis$Ideologia_pc_cod
<- as.factor(cis$Ideologia_pc_cod)
#Pablo Casado
cis$Ideologia_pi_cod
<- NULL
cis
<- cis %>%
mutate(Ideologia_pi_cod=
case_when(ESCIDEOLPOLI_3 == 1 ~ 1,
ESCIDEOLPOLI_3 == 2 ~ 2,
ESCIDEOLPOLI_3 == 3 ~ 3,
ESCIDEOLPOLI_3 == 4 ~ 4,
ESCIDEOLPOLI_3 == 5 ~ 5,
ESCIDEOLPOLI_3 == 6 ~ 6,
ESCIDEOLPOLI_3 == 7 ~ 7,
ESCIDEOLPOLI_3 == 8 ~ 8,
ESCIDEOLPOLI_3 == 9 ~ 9,
ESCIDEOLPOLI_3 == 10 ~ 10,
ESCIDEOLPOLI_3 == 97 ~ 11,
ESCIDEOLPOLI_3 == 98 | ESCIDEOLPOLI_3 == 99 ~ 99))
cis$Ideologia_pi_cod
<- as.factor(cis$Ideologia_pi_cod)
#Santiago
Abascal
cis$Ideologia_sa_cod
<- NULL
cis
<- cis %>%
mutate(Ideologia_sa_cod=
case_when(ESCIDEOLPOLI_4 == 1 ~ 1,
ESCIDEOLPOLI_4 == 2 ~ 2,
ESCIDEOLPOLI_4 == 3 ~ 3,
ESCIDEOLPOLI_4 == 4 ~ 4,
ESCIDEOLPOLI_4 == 5 ~ 5,
ESCIDEOLPOLI_4 == 6 ~ 6,
ESCIDEOLPOLI_4 == 7 ~ 7,
ESCIDEOLPOLI_4 == 8 ~ 8,
ESCIDEOLPOLI_4 == 9 ~ 9,
ESCIDEOLPOLI_4 == 10 ~ 10,
ESCIDEOLPOLI_4 == 97 ~ 11,
ESCIDEOLPOLI_4
== 98 | ESCIDEOLPOLI_4 == 99
~ 99))
cis$Ideologia_sa_cod
<- as.factor(cis$Ideologia_sa_cod)
#Inés Arrimadas
tabla_ideologia_ia<-
rownames(table(cis$ESCIDEOLPOLI_5))
tabla_ideologia_ia
<- cbind(tabla_ideologia_ia, c("1
- Izquierda", "2",
"3", "4",
"5", "6",
"7", "8",
"9","10 -
Derecha", "No conoce",
"NS", "NC"))
colnames(tabla_ideologia_ia)
<- NULL
cis$Ideologia_ia_cod
<- NULL
cis <- cis
%>%
mutate(Ideologia_ia_cod= case_when(ESCIDEOLPOLI_5
== 1 ~ 1,
ESCIDEOLPOLI_5 == 2 ~ 2,
ESCIDEOLPOLI_5 == 3 ~ 3,
ESCIDEOLPOLI_5 == 4 ~ 4,
ESCIDEOLPOLI_5 == 5 ~ 5,
ESCIDEOLPOLI_5 == 6 ~ 6,
ESCIDEOLPOLI_5 == 7 ~ 7,
ESCIDEOLPOLI_5 == 8 ~ 8,
ESCIDEOLPOLI_5 == 9 ~ 9,
ESCIDEOLPOLI_5 == 10 ~ 10,
ESCIDEOLPOLI_5 == 97 ~ 11,
ESCIDEOLPOLI_5 == 98 | ESCIDEOLPOLI_5 == 99 ~ 99))
cis$Ideologia_ia_cod
<- as.factor(cis$Ideologia_ia_cod)
cis$Ideologia_ia_cod
<- as.factor(cis$Ideologia_ia_cod)
tabla_Ideologia_ia_cod
<- rownames(table(cis$Ideologia_ia_cod))
tabla_Ideologia_ia_cod
<- cbind(tabla_Ideologia_ia_cod, c("1
- Izquierda", "2",
"3", "4",
"5", "6",
"7", "8",
"9","10 -
Derecha", "No conoce",
"NS/NC"))
colnames(tabla_Ideologia_ia_cod)
<- NULL
tabla_Ideologia_ia_cod
<- as.data.frame(tabla_Ideologia_ia_cod)
tabla_total_ideologia_ia
<- data.frame(tabla_ideologia_ia, cbind(zoo(, 1:nrow(tabla_ideologia_ia)),
as.zoo(tabla_Ideologia_ia_cod)))
colnames(tabla_total_ideologia_ia)
<- NULL
options(knitr.kable.NA = '')
kable(tabla_total_ideologia_ia,
position = "center",
booktabs = TRUE, align
= "clcl", caption
= "<left><br><em>P24: Escala de ubicación
ideológica (1-10) de líderes políticos nacionales: *Pedro Sánchez * Pablo
Casado * Pablo Iglesias * Santiago Abascal * Inés Arrimadas
</em></center>", escape
= FALSE) %>%
kable_classic(full_width = F, html_font = "Times
New Roman")%>%
add_header_above (c("Valores
iniciales" = 2, "Recodificación"
= 2))%>%
column_spec(c(1,3), width = "1cm")%>%
column_spec(c(2,4), width = "3cm")
-
Recodificación y tabla de la valoración de los líderes políticos
#Pedro Sánchez
tabla_valoracion_ps<-
rownames(table(cis$P25_1))
tabla_valoracion_ps
<- cbind(tabla_valoracion_ps, c("1
- Muy mal", "2",
"3", "4",
"5", "6",
"7", "8",
"9", "10 - Muy
bien ", "No conoce",
"NS", "NC"))
colnames(tabla_valoracion_ps)
<- NULL
cis$Valoracion_ps_cod
<- NULL
cis
<- cis %>%
mutate(Valoracion_ps_cod=
case_when(P25_1 == 1 | P25_1 == 2 ~ 1,
P25_1 == 3 | P25_1 == 4 ~ 2,
P25_1 == 5 | P25_1 == 6 ~ 3,
P25_1 == 7 | P25_1 == 8 ~ 4,
P25_1 == 9 | P25_1 == 10 ~ 5,
P25_1 == 97 ~ 6,
P25_1 == 98 | P25_1 == 99 ~ 99))
cis$Valoracion_ps_cod
<- as.factor(cis$Valoracion_ps_cod)
tabla_Valoracion_ps_cod
<- rownames(table(cis$Valoracion_ps_cod))
tabla_Valoracion_ps_cod
<- cbind(tabla_Valoracion_ps_cod, c("Muy
mal", "Mal",
"Regular", "Bien",
"Muy bien", "No
conoce", "NS/NC"))
colnames(tabla_Valoracion_ps_cod)
<- NULL
tabla_Valoracion_ps_cod
<- as.data.frame(tabla_Valoracion_ps_cod)
tabla_total_valoracion
<- data.frame(tabla_valoracion_ps, cbind(zoo(, 1:nrow(tabla_valoracion_ps)),
as.zoo(tabla_Valoracion_ps_cod)))
colnames(tabla_total_valoracion)
<- NULL
tabla_total_valoracion[,4]<-as.character(tabla_total_valoracion[,4])
tabla_total_valoracion[1,4]<-paste("Muy
mal", footnote_marker_number(1,
"html"))
tabla_total_valoracion[2,4]<-paste("Mal",
footnote_marker_number(2, "html"))
tabla_total_valoracion[3,4]<-paste("Regular",
footnote_marker_number(3, "html"))
tabla_total_valoracion[4,4]<-paste("Bien",
footnote_marker_number(2, "html"))
tabla_total_valoracion[5,4]<-paste("Muy
bien", footnote_marker_number(3,
"html"))
options(knitr.kable.NA = '')
kable(tabla_total_valoracion,
position = "center",
booktabs = TRUE, align
= "clcl", caption
= "<left><em>P25: Escala de valoración (1-10) de
líderes políticos nacionales: *Pedro Sánchez * Pablo Casado * Pablo Iglesias *
Santiago Abascal * Inés Arrimadas </em></center>",
escape = FALSE) %>%
kableExtra::footnote(number
= c("Valoración entre 1 y 2", "Valoración
entre 3 y 4", "Valoración entre 5 y 6",
"Valoración entre 7 y 8", "Valoración
entre 9 y 10"))%>%
kable_classic(full_width = F, html_font = "Times
New Roman")%>%
add_header_above (c("Valores
iniciales" = 2, "Recodificación"
= 2))%>%
column_spec(c(1,3), width = "1cm")%>%
column_spec(c(2,4), width = "4cm")
#Pablo Casado
cis$Valoracion_pc_cod
<- NULL
cis
<- cis %>%
mutate(Valoracion_pc_cod=
case_when(P25_2 == 1 | P25_2 == 2 ~ 1,
P25_2 == 3 | P25_2 == 4 ~ 2,
P25_2 == 5 | P25_2 == 6 ~ 3,
P25_2 == 7 | P25_2 == 8 ~ 4,
P25_2 == 9 | P25_2 == 10 ~ 5,
P25_2 == 97 ~ 6,
P25_2 == 98 | P25_2 == 99 ~ 99))
cis$Valoracion_pc_cod
<- as.factor(cis$Valoracion_pc_cod)
#Pablo
Iglesias
cis$Valoracion_pi_cod
<- NULL
cis
<- cis %>%
mutate(Valoracion_pi_cod=
case_when(P25_3 == 1 | P25_3 == 2 ~ 1,
P25_3 == 3 | P25_3 == 4 ~ 2,
P25_3 == 5 | P25_3 == 6 ~ 3,
P25_3 == 7 | P25_3 == 8 ~ 4,
P25_3 == 9 | P25_3 == 10 ~ 5,
P25_3 == 97 ~ 6,
P25_3 == 98 | P25_3 == 99 ~ 99))
cis$Valoracion_pi_cod
<- as.factor(cis$Valoracion_pi_cod)
#Santiago
Abascal
cis$Valoracion_sa_cod
<- NULL
cis
<- cis %>%
mutate(Valoracion_sa_cod=
case_when(P25_4 == 1 | P25_4 == 2 ~ 1,
P25_4 == 3 | P25_4 == 4 ~ 2,
P25_4 == 5 | P25_4 == 6 ~ 3,
P25_4 == 7 | P25_4 == 8 ~ 4,
P25_4 == 9 | P25_4 == 10 ~ 5,
P25_4 == 97 ~ 6,
P25_4 == 98 | P25_4 == 99 ~ 99))
cis$Valoracion_sa_cod
<- as.factor(cis$Valoracion_sa_cod)
#Inés
Arrimadas
cis$Valoracion_ia_cod
<- NULL
cis
<- cis %>%
mutate(Valoracion_ia_cod=
case_when(P25_5 == 1 | P25_5 == 2 ~ 1,
P25_5 == 3 | P25_5 == 4 ~ 2,
P25_5 == 5 | P25_5 == 6 ~ 3,
P25_5 == 7 | P25_5 == 8 ~ 4,
P25_5 == 9 | P25_5 == 10 ~ 5,
P25_5 == 97 ~ 6,
P25_5 == 98 | P25_5 == 99 ~ 99))
cis$Valoracion_ia_cod
<- as.factor(cis$Valoracion_ia_cod)
-
Recodificación y tabla de la participación en las elecciones generales de
2019
tabla_participacion<-
rownames(table(cis$PARTICIPACIONG))
tabla_participacion
<- cbind(tabla_participacion, c("Fue
a votar y votó", "No tenía
edad para votar", "Fue a
votar pero no pudo hacerlo", "No fue a
votar porque no pudo", "Prefirió
no votar", "No tenía derecho a voto",
"Votó por correo", "No
recuerda/NS", "NC"))
colnames(tabla_participacion)
<- NULL
cis$Participacion_cod
<- NULL
cis
<- cis %>%
mutate(Participacion_cod=
case_when(PARTICIPACIONG == 1
| PARTICIPACIONG == 7
~ 1,
PARTICIPACIONG
== 3 | PARTICIPACIONG == 4
| PARTICIPACIONG == 5
~ 2,
PARTICIPACIONG
== 2 | PARTICIPACIONG == 6
~ 3,
PARTICIPACIONG
== 9 | PARTICIPACIONG == 8
~ 99))
cis$Participacion_cod
<- as.factor(cis$Participacion_cod)
cis$Participacion_cod
<- as.factor(cis$Participacion_cod)
tabla_Participacion_cod
<- rownames(table(cis$Participacion_cod))
tabla_Participacion_cod
<- cbind(tabla_Participacion_cod, c("Votó",
"No votó", "No tenía
derecho a voto", "NS/NC"))
colnames(tabla_Participacion_cod)
<- NULL
tabla_Participacion_cod
<- as.data.frame(tabla_Participacion_cod)
tabla_total_participacion
<- data.frame(tabla_participacion, cbind(zoo(, 1:nrow(tabla_participacion)),
as.zoo(tabla_Participacion_cod)))
colnames(tabla_total_participacion)
<- NULL
tabla_total_participacion[,4]<-as.character(tabla_total_participacion[,4])
tabla_total_participacion[1,4]<-paste("Votó",
footnote_marker_number(1, "html"))
tabla_total_participacion[2,4]<-paste("No
votó", footnote_marker_number(2,
"html"))
tabla_total_participacion[3,4]<-paste("No
tenía derecho a voto", footnote_marker_number(3,
"html"))
options(knitr.kable.NA = '')
kable(tabla_total_participacion,
position = "center",
booktabs = TRUE, align
= "clcl", caption
= "<leftr><em>P26: Participación electoral en las
anteriores elecciones generales (nov. 2019) </em></center>",
escape = FALSE) %>%
kableExtra::footnote(number =
c("Fue a votar y votó; Votó por correo",
"Fue a votar pero no pudo hacerlo; No fue a votar porque no
pudo", "No tenía edad para votar; No
tenía derecho a voto"))%>%
kable_classic(full_width = F, html_font = "Times
New Roman")%>%
add_header_above (c("Valores
iniciales" = 2, "Recodificación"
= 2))%>%
column_spec(c(1,3), width = "1cm")%>%
column_spec(c(4), width = "6cm")
colSums(is.na(cis))
cis2
<- cis %>% select(SEXO,
CCAA, Edad_grupos,P0,Situ_eco_cod,
Estudios, Religion_cod, civil_cod,Situ,
clase_cod, Conf_presi_cod, Conf_opo_cod,
Pref_presi_cod, Voto_cod,
Voto_alternativo_cod, Simpatia_cod,
Ideologia_cod, Ideologia_ps_cod,
Ideologia_pc_cod, Ideologia_pi_cod,
Ideologia_sa_cod, Ideologia_ia_cod,
Valoracion_ps_cod, Valoracion_pc_cod,
Valoracion_pi_cod, Valoracion_sa_cod,
Valoracion_ia_cod, Participacion_cod,
Recuerdo_cod, Cercania_cod)
-
Resumen de variables
cis_nombre
<- cis2
cis_nombre$SEXO
<- factor(cis_nombre$SEXO,
labels = c("Hombre",
"Mujer"))
cis_nombre$CCAA
<- factor(cis_nombre$CCAA,
labels = c("Andalucía",
"Aragón", "Asturias
(Principado de)", "Baleares
(Illes)", "Canarias",
"Cantabria", "Castilla-La
Mancha", "Castilla y León",
"Cataluña", "Comunitat
Valenciana", "Extremadura",
"Galicia", "Madrid
(Comunidad de)", "Murcia
(Región de)", "Navarra (Comunidad Floral
de)", "País Vasco",
"Rioja (La)", "Ceuta
(Ciudad Autónoma de)", "Melilla
(Ciudad Autónoma de)"))
cis_nombre$Edad_grupos
<- factor(cis_nombre$Edad_grupos,
labels = c("De 18 a 24 años",
"De 25 a 34 años", "De 35 a
44 años", "De 45 a 54 años",
"De 55 a 64 años","Más de
65 años"))
cis_nombre$P0
<- factor(cis_nombre$P0,
labels = c("Nacionalidad
española", "Nacionalidad española y
otra"))
cis_nombre$Situ
<- factor(cis_nombre$Situ,
labels = c("Trabajadores",
"Jubilados o pensionistas", "Parados",
"Estudiantes", "Trabajo
doméstico no remunerado", "Otra
situación", "NC"))
cis_nombre$Estudios
<- factor(cis_nombre$Estudios,
labels = c("Sin estudios / Estudios
Primarios", "Estudios Secundarios / Formación
Profesional", "Estudios Superiores",
"Otros estudios", "NS/NC"))
cis_nombre$Religion_cod
<- factor(cis_nombre$Religion_cod,
labels = c("Católico",
"Creyente de otra religión", "No
creyente", "Ateo/a",
"NC"))
cis_nombre$civil_cod
<- factor(cis_nombre$civil_cod,
labels = c("Casado/a",
"Soltero/a", "Viudo/a",
"NC"))
cis_nombre$Situ_eco_cod
<- factor(cis_nombre$Situ_eco_cod,
labels = c("Muy buena",
"Buena", "Regular",
"Mala", "Muy
mala", "NS/NC"))
cis_nombre$clase_cod
<- factor(cis_nombre$clase_cod,
labels = c("Clase alta",
"Clase media", "Clase
baja", "Otra clase",
"No cree en las clases", "NS/NC"))
cis_nombre$Conf_presi_cod
<- factor(cis_nombre$Conf_presi_cod,
labels = c("Mucha confianza",
"Bastante confianza", "Poca
confianza", "Ninguna confianza",
"NS/NC"))
cis_nombre$Conf_opo_cod
<- factor(cis_nombre$Conf_opo_cod,
labels = c("Mucha confianza",
"Bastante confianza", "Poca
confianza", "Ninguna confianza",
"NS/NC"))
cis_nombre$Pref_presi_cod
<- factor(cis_nombre$Pref_presi_cod,
labels = c("Pedro Sánchez",
"Pablo Casado","Santiago
Abascal", "Pablo Iglesias",
"Alberto Garzón", "Inés
Arrimadas", "Iñigo Errejón",
"Otro/a", "Ninguno/a",
"NS/NC"))
cis_nombre$Voto_cod
<- factor(cis_nombre$Voto_cod,
labels = c("PP",
"PSOE", "Podemos",
"Ciudadanos", "VOX",
"ERC", "JxCat",
"EAJ-PNV", "Otros",
"Abstención", "NS/NC"))
cis_nombre$Voto_alternativo_cod
<- factor(cis_nombre$Voto_alternativo_cod,
labels = c("PP",
"PSOE", "Podemos",
"Ciudadanos", "VOX",
"ERC", "JxCat",
"EAJ-PNV", "Otros",
"No votaría a ningún otro partido", "Abstención",
"NS/NC"))
cis_nombre$Simpatia_cod
<- factor(cis_nombre$Simpatia_cod,
labels = c("PP",
"PSOE", "Podemos",
"Ciudadanos", "VOX",
"ERC", "JxCat",
"EAJ-PNV", "Otros",
"Ninguno", "NS/NC"))
cis_nombre$Ideologia_cod
<- factor(cis_nombre$Ideologia_cod,
labels = c("1 - Izquierda",
"2", "3",
"4", "5",
"6", "7",
"8", "9","10
- Derecha", "NS/NC"))
cis_nombre$Ideologia_ps_cod
<- factor(cis_nombre$Ideologia_ps_cod,
labels = c("1 - Izquierda",
"2", "3",
"4", "5",
"6", "7",
"8", "9","10
- Derecha", "No conoce",
"NS/NC"))
cis_nombre$Ideologia_pc_cod
<- factor(cis_nombre$Ideologia_pc_cod,
labels = c("1 - Izquierda",
"2", "3",
"4", "5",
"6", "7",
"8", "9","10
- Derecha", "No conoce",
"NS/NC"))
cis_nombre$Ideologia_pi_cod
<- factor(cis_nombre$Ideologia_pi_cod,
labels = c("1 - Izquierda",
"2", "3",
"4", "5",
"6", "7",
"8", "9","10
- Derecha", "No conoce",
"NS/NC"))
cis_nombre$Ideologia_sa_cod
<- factor(cis_nombre$Ideologia_sa_cod,
labels = c("1 - Izquierda",
"2", "3",
"4", "5",
"6", "7",
"8", "9","10
- Derecha", "No conoce",
"NS/NC"))
cis_nombre$Ideologia_ia_cod
<- factor(cis_nombre$Ideologia_ia_cod,
labels = c("1 - Izquierda",
"2", "3",
"4", "5",
"6", "7",
"8", "9","10
- Derecha", "No conoce",
"NS/NC"))
cis_nombre$Valoracion_ps_cod
<- factor(cis_nombre$Valoracion_ps_cod,
labels = c("Muy mal",
"Mal", "Regular",
"Bien", "Muy
bien", "No conoce",
"NS/NC"))
cis_nombre$Valoracion_pc_cod
<- factor(cis_nombre$Valoracion_pc_cod,
labels = c("Muy mal",
"Mal", "Regular",
"Bien", "Muy
bien", "No conoce",
"NS/NC"))
cis_nombre$Valoracion_pi_cod
<- factor(cis_nombre$Valoracion_pi_cod,
labels = c("Muy mal",
"Mal", "Regular",
"Bien", "Muy
bien", "No conoce",
"NS/NC"))
cis_nombre$Valoracion_sa_cod
<- factor(cis_nombre$Valoracion_sa_cod,
labels = c("Muy mal",
"Mal", "Regular",
"Bien", "Muy
bien", "No conoce",
"NS/NC"))
cis_nombre$Valoracion_ia_cod
<- factor(cis_nombre$Valoracion_ia_cod,
labels = c("Muy mal",
"Mal", "Regular",
"Bien", "Muy
bien", "No conoce",
"NS/NC"))
cis_nombre$Participacion_cod
<- factor(cis_nombre$Participacion_cod,
labels = c("Votó",
"No votó", "No tenía
derecho a voto", "NS/NC"))
cis_nombre$Recuerdo_cod
<- factor(cis_nombre$Recuerdo_cod,
labels = c("PP",
"PSOE", "Podemos",
"Ciudadanos", "VOX",
"ERC", "JxCat",
"EAJ-PNV", "Otros",
"Abstención", "No fué a
votar", "NS/NC"))
cis_nombre$Cercania_cod
<- factor(cis_nombre$Cercania_cod,
labels = c("PP",
"PSOE", "Podemos",
"Ciudadanos", "VOX",
"ERC", "JxCat",
"EAJ-PNV", "Otros",
"Ninguno", "NS/NC"))
kable(summary(cis_nombre,
maxsum = 7)[,1:6],
position = "center",
booktabs = TRUE, align
= rep("c",10),
caption = "<leftr><em> Resumen
variables (1-6) </em></center>", escape
= FALSE, col.names = c("Sexo",
"Comunidad Autónoma", "Edad",
"Nacionalidad", "Valoración
Situación económica", "Nivel de
estudios"), font_size = 20)
%>%
kable_classic(full_width = T, html_font = "Times
New Roman")%>%
column_spec(c(2:7), width = "2cm")%>%
column_spec(c(1), width = "0.5cm")
kable(summary(cis_nombre,
maxsum = 12)[,7:12],
position = "center",
booktabs = TRUE, align
= rep("c",10),
caption = "<leftr><em> Resumen
variables (7-12) </em></center>", escape
= FALSE, col.names = c("Religión",
"Estado civil", "Situación
laboral", "Clase social",
"Confianza en el presidente", "Confianza
en la oposición"), font_size
= 20) %>%
kable_classic(full_width = F, html_font = "Times
New Roman")%>%
column_spec(2:7, width = "4cm")%>%
column_spec(c(1), width = "0.5cm")
kable(summary(cis_nombre,
maxsum = 12)[,13:18],
position = "center",
booktabs = TRUE, align
= rep("c",10),
caption = "<leftr><em> Resumen
variables (13-18) </em></center>", escape
= FALSE, col.names = c("Preferencia
de presidente", "Intención
de voto", "Intención de voto
alternativo", "Simpatía partidista",
"Ideología", "Clasificación
ideológica PS"), font_size
= 20) %>%
kable_classic(full_width = F, html_font = "Times
New Roman")%>%
column_spec(1:7, width = "6cm")%>%
column_spec(c(1), width = "0.5cm")
kable(summary(cis_nombre,
maxsum = 12)[,19:24],
position = "center",
booktabs = TRUE, align
= rep("c",10),
caption = "<leftr><em> Resumen
variables (19-24) </em></center>", escape
= FALSE, col.names = c("Clasificación
ideológica PC", "Clasificación
ideológica PI", "Clasificación
ideológica SA", "Clasificación
ideológica IA", "Valoración
PS", "Valoración PC"),
font_size = 20) %>%
kable_classic(full_width = F, html_font = "Times
New Roman")%>%
column_spec(1:7, width = "6cm")%>%
column_spec(c(1), width = "0.5cm")
kable(summary(cis_nombre,
maxsum = 12)[,25:30],
position = "center",
booktabs = TRUE, align
= rep("c",10),
caption = "<leftr><em> Resumen
variables (25-30) </em></center>", escape
= FALSE, col.names = c("Valoración
PI", "Valoración SA",
"Valoración IA", "Participación
electoral 2019", "Recuerdo
de voto 2019", "Cercanía partidista"))
%>%
kable_classic(full_width = F, html_font = "Times
New Roman")%>%
column_spec(1:7, width = "6cm")%>%
column_spec(c(1), width = "0.5cm")
-
Gráfico de
respuestas NS/NC
cis_resumen
<- cis2
cis_resumen[cis_resumen
== "99"] <- NA
sort(colSums(is.na(cis_resumen)))
colnames(cis_resumen)
<- c("Sexo", "Comunidad
Autónoma", "Edad",
"Nacionalidad", "Valoración
Situación económica", "Nivel de
estudios", "Religión",
"Estado civil", "Situación
laboral", "Clase social",
"Confianza en el presidente", "Confianza
en la oposición", "Preferencia
de presidente", "Intención
de voto", "Intención de voto
alternativo", "Simpatía partidista",
"Ideología", "Ideología
PS", "Ideología PC",
"Ideología PI", "Ideología
SA", "Ideología IA",
"Valoración PS", "Valoración
PC", "Valoración PI",
"Valoración SA", "Valoración
IA", "Participación electoral
2019", "Recuerdo de voto 2019",
"Cercanía partidista")
plot_missing_2
<-
function (data, group = list(Muy_bajo
= 0.05, Bajo = 0.2, Elevado = 0.8,
Muy_elevado
= 1), geom_label_args =
list(), title = NULL, ggtheme =
theme_gray(),
theme_config =
list(legend.position = c("bottom"), text=element_text(family="Times", size=20), plot.title =
element_text(face = "bold.italic", hjust = -0.4, color = "darkgray" )))
{
pct_missing <- Escala
<- NULL
missing_value
<- data.table(profile_missing(data))
group <- group[sort.list(unlist(group))]
invisible(lapply(seq_along(group), function(i) {
if (i == 1) {
missing_value[pct_missing
<= group[[i]], `:=`(Escala,
names(group)[i])]
} else {
missing_value[pct_missing >
group[[i - 1]]
& pct_missing <=
group[[i]], `:=`(Escala,
names(group)[i])]
}
}))
output <- ggplot(missing_value,
aes_string(x = "feature",
y = "num_missing", fill = "Escala")) +
geom_bar(stat = "identity") +
scale_fill_manual("Escala",
values = c("Muy_elevado"="firebrick2",
"Bajo"="#9ECAE1",
"Elevado"="#3182BD",
"Muy_bajo"="#DEEBF7"))
+ coord_flip() + xlab("Atributos")
+
ylab("Número
de respuestas NS/NC")
geom_label_args_list
<- list(mapping = aes(label =
paste0(round(100 *
pct_missing, 2), "%")))
output <- output +
do.call("geom_label", c(geom_label_args_list,
geom_label_args))
class(output)
<- c("single", class(output))
plotDataExplorer(plot_obj = output, title = title, ggtheme = ggtheme,
theme_config = theme_config)
}
plot_missing_2(cis_resumen, ggtheme =
theme_classic(), title = "Respuestas
NS/NC por atributo")
sort(colSums(cis2
== "99"))
-
Diagrama de barras
de la intención de voto
library(cowplot)
library(RColorBrewer)
my.palette
<- brewer.pal(n = 7, name = "PuBu")
cis$Voto_cod2
<- factor(cis$Voto_cod,
labels = c("PP",
"PSOE", "Podemos",
"Ciudadanos", "VOX",
"ERC", "JxCat",
"EAJ-PNV", "Otros",
"Abstención", "NS/NC"))
ggplot(cis)+
geom_bar(aes(x=Voto_cod2, y=..count../length(cis$Voto_cod)
,fill = ..count..), col = "white") +
labs(x=" ", y= "Recuento") +
ggtitle("Intención de voto") + scale_fill_gradientn(colours = my.palette, name = "Recuento") +
theme(plot.title = element_text(hjust = 0.5))+
theme(panel.border = element_blank(),
panel.background =
element_blank(), text=element_text(family="Times", size = 15)) +
theme(plot.title = element_text(face = "italic", hjust = 0))
-
Diagrama de barras
de la valoración de los líderes políticos en función de la intención de voto
# Pedro Sánchez
library(ggplot2)
library(RColorBrewer)
my.palette_sa
<- brewer.pal("BuGn", n = 7)
cis$Valoracion_ps_cod2
<- factor(cis$Valoracion_ps_cod,
labels = c("Muy mal",
"Mal", "Regular",
"Bien", "Muy
bien", "No conoce",
"NS/NC"))
cis$Voto_cod2
<- factor(cis$Voto_cod,
labels = c("PP",
"PSOE", "Podemos",
"Ciudadanos", "VOX",
"ERC", "JxCat",
"EAJ-PNV", "Otros",
"Abstención", "NS/NC"))
plot_val_1
<- ggplot(cis, aes(x
= Voto_cod2, fill = Valoracion_ps_cod2))
+ labs(x=" ",
y= "Recuento",
fill = "Valoración PS")
+ ggtitle("Valoración Pedro Sánchez - Intención de
Voto")+
geom_bar()+scale_fill_manual(values=my.palette_sa)+
theme(plot.title = element_text(face = "italic", hjust = 0))+
theme(panel.border = element_blank(),
panel.background = element_blank(), text=element_text(family="Times", size = 10))
plot_val_1
# Pablo Casado
cis$Valoracion_pc_cod2
<- factor(cis$Valoracion_pc_cod,
labels = c("Muy mal",
"Mal", "Regular",
"Bien", "Muy
bien", "No conoce",
"NS/NC"))
plot_val_2
<- ggplot(cis, aes(x
= Voto_cod2, fill = Valoracion_pc_cod2))
+ labs(x=" ",
y= "Recuento",
fill = "Valoración PC")
+ ggtitle("Valoración Pablo Casado - Intención de
Voto")+
geom_bar()+scale_fill_manual(values=my.palette_sa)+
theme(plot.title = element_text(face = "italic", hjust = 0))+
theme(panel.border = element_blank(),
panel.background = element_blank(), text=element_text(family="Times", size = 10))
# Pablo
Iglesias
cis$Valoracion_pi_cod2
<- factor(cis$Valoracion_pi_cod,
labels = c("Muy mal",
"Mal", "Regular",
"Bien", "Muy
bien", "No conoce",
"NS/NC"))
plot_val_3
<- ggplot(cis, aes(x
= Voto_cod2, fill = Valoracion_pi_cod2))
+ labs(x=" ",
y= "Recuento",
fill = "Valoración PI")
+ ggtitle("Valoración Pablo Iglesias - Intención de
Voto")+
geom_bar()+scale_fill_manual(values=my.palette_sa)+
theme(plot.title = element_text(face = "italic", hjust = 0))+
theme(panel.border = element_blank(),
panel.background = element_blank(), text=element_text(family="Times", size = 10))
#Santiago
Abascal
cis$Valoracion_sa_cod2
<- factor(cis$Valoracion_sa_cod,
labels = c("Muy mal",
"Mal", "Regular",
"Bien", "Muy
bien", "No conoce",
"NS/NC"))
plot_val_4
<- ggplot(cis, aes(x
= Voto_cod2, fill = Valoracion_sa_cod2))
+ labs(x=" ",
y= "Recuento",
fill = "Valoración SA")
+ ggtitle("Valoración Santiago Abascal - Intención de
Voto")+
geom_bar()+scale_fill_manual(values=my.palette_sa)+
theme(plot.title = element_text(face = "italic", hjust = 0))+
theme(panel.border = element_blank(),
panel.background = element_blank(), text=element_text(family="Times", size = 10))
#Inés
Arrimadas
cis$Valoracion_ia_cod2
<- factor(cis$Valoracion_ia_cod,
labels = c("Muy mal",
"Mal", "Regular",
"Bien", "Muy
bien", "No conoce",
"NS/NC"))
ggplot(cis,
aes(x = Voto_cod2, fill
= Valoracion_ia_cod2)) + labs(x="
", y= "Recuento",
fill = "Valoración IA")
+ ggtitle("Valoración Inés Arrimadas - Intención de
Voto")+
geom_bar()+scale_fill_manual(values=my.palette_sa)+
theme(plot.title = element_text(face = "italic", hjust = 0))+
theme(panel.border = element_blank(),
panel.background = element_blank(), text=element_text(family="Times", size = 11))
library(gridExtra)
library(grid)
grid.arrange(plot_val_1, plot_val_2, plot_val_3, plot_val_4, ncol = 2)
-
Diagrama de barras
de la clasificación ideológica de los líderes políticos en función de la
intención de voto
par(family
= 'serif')
cis$Ideologia_ia_cod2
<- factor(cis$Ideologia_ia_cod,
labels = c("1- I",
"2", "3",
"4", "5",
"6", "7",
"8", "9",
"10-D", "No
concoce", "NS/NC"))
cis$Ideologia_ps_cod2
<- factor(cis$Ideologia_ps_cod,
labels = c("1- I",
"2", "3",
"4", "5",
"6", "7",
"8", "9",
"10-D", "No
concoce", "NS/NC"))
cis$Ideologia_pc_cod2
<- factor(cis$Ideologia_pc_cod,
labels = c("1- I",
"2", "3",
"4", "5",
"6", "7",
"8", "9",
"10-D", "No
concoce", "NS/NC"))
cis$Ideologia_pi_cod2
<- factor(cis$Ideologia_pi_cod,
labels = c("1- I",
"2", "3",
"4", "5",
"6", "7",
"8", "9",
"10-D", "No
concoce", "NS/NC"))
cis$Ideologia_sa_cod2
<- factor(cis$Ideologia_sa_cod,
labels = c("1- I",
"2", "3",
"4", "5",
"6", "7",
"8", "9",
"10-D", "No
concoce", "NS/NC"))
library(grid)
library(gridExtra)
library(ggplot2)
library(RColorBrewer)
# Pedro Sánchez
my.palette
<- brewer.pal("Greens", n = 7)
plot_ide_1
<- ggplot(cis)+ geom_bar(aes(x=Ideologia_ps_cod2, y=..count../length(cis$Ideologia_ps_cod),fill = ..count..), col = "white") +
labs(x=" ", y= "Frecuencia") +
ggtitle("Clasificación ideológica de Pedro Sánchez") + scale_fill_gradientn(colours = my.palette, name = "Recuento") +
theme(plot.title = element_text(face = "italic", hjust = 0))+
theme(panel.border = element_blank(),
panel.background = element_blank(), text=element_text(family="Times", size = 11))
# Pablo Casado
plot_ide_2
<- ggplot(cis)+ geom_bar(aes(x=Ideologia_pc_cod2, y=..count../length(cis$Ideologia_pc_cod),fill = ..count..), col = "white") +
labs(x=" ", y= "Frecuencia") +
ggtitle("Clasificación ideológica de Pablo Casado") + scale_fill_gradientn(colours = my.palette, name = "Recuento") +
theme(plot.title = element_text(face = "italic", hjust = 0))+
theme(panel.border = element_blank(),
panel.background = element_blank(), text=element_text(family="Times", size = 11))
# Pablo Iglesias
plot_ide_3
<- ggplot(cis)+ geom_bar(aes(x=Ideologia_pi_cod2, y=..count../length(cis$Ideologia_pi_cod),fill = ..count..), col = "white") +
labs(x=" ", y= "Frecuencia") +
ggtitle("Clasificación ideológica de Pablo Iglesias") + scale_fill_gradientn(colours = my.palette, name = "Recuento") +
theme(plot.title = element_text(face = "italic", hjust = 0))+
theme(panel.border = element_blank(),
panel.background = element_blank(), text=element_text(family="Times", size = 11))
# Santiago
Abascal
plot_ide_4
<- ggplot(cis)+ geom_bar(aes(x=Ideologia_sa_cod2, y=..count../length(cis$Ideologia_sa_cod),fill = ..count..), col = "white") +
labs(x=" ", y= "Frecuencia") +
ggtitle("Clasificación ideológica de Santiago
Abascal") + scale_fill_gradientn(colours = my.palette, name = "Recuento") +
theme(plot.title = element_text(face = "italic", hjust = 0))+
theme(panel.border = element_blank(),
panel.background = element_blank(), text=element_text(family="Times", size = 11))
grid.arrange(plot_ide_1, plot_ide_2, plot_ide_3, plot_ide_4, ncol = 2)
# Inés Arrimadas
ggplot(cis)+
geom_bar(aes(x=Ideologia_ia_cod2, y=..count../length(cis$Ideologia_ia_cod),fill = ..count..), col = "white") +
labs(x=" ", y= "Frecuencia") + ggtitle("Clasificación
ideológica de Inés Arrimadas") + scale_fill_gradientn(colours = my.palette, name = "Recuento") +
theme(plot.title = element_text(face = "italic", hjust = 0))+
theme(panel.border = element_blank(),
panel.background = element_blank(), text=element_text(family="Times", size = 11))
-
Tau de Goodman and Kruskal
library(GoodmanKruskal)
GKcis
<- GKtauDataframe(cis2)
GKcis2
<- matrix(0, nrow =
nrow(GKcis), ncol = ncol(GKcis))
for(i in 1:
nrow(GKcis))
{
GKcis2[i,]=GKcis[i,]
}
colnames(GKcis2) =
colnames(GKcis)
rownames(GKcis2) =
rownames(GKcis)
GKcis2
<- as.data.frame(GKcis2)
colores
<- function(x){
cell_spec(x, background =
ifelse(x>=0.1 & x<0.2, "tomato",
ifelse(x>=0.2 & x <0.5, "#f4d35e", ifelse(x
>= 0.5 & x<1, "lightgreen","white"))))
}
GKcis3
<- as.data.frame(GKcis2)
GKcis3
<- mutate_all(GKcis2,funs(colores(.)))
rownames(GKcis3)
<- c("Sexo", "Comunidad
Autónoma", "Edad",
"Nacionalidad", "Valoración
Situación económica", "Nivel de
estudios", "Religión",
"Estado civil", "Situación
laboral", "Clase social",
"Confianza en el presidente", "Confianza
en la oposición", "Preferencia
de presidente", "Intención
de voto", "Intención de voto
alternativo", "Simpatía partidista",
"Ideología", "Clasificación
ideológica PS", "Clasificación
ideológica PC", "Clasificación
ideológica PI", "Clasificación
ideológica SA", "Clasificación
ideológica IA", "Valoración
PS", "Valoración PC",
"Valoración PI", "Valoración
SA", "Valoración IA",
"Participación electoral 2019", "Recuerdo
de voto 2019", "Cercanía partidista")
colnames(GKcis3)
<- c("Sexo", "Comunidad
Autónoma", "Edad",
"Nacionalidad", "Valoración
Situación económica", "Nivel de
estudios", "Religión",
"Estado civil", "Situación
laboral", "Clase social",
"Confianza en el presidente", "Confianza
en la oposición", "Preferencia
de presidente", "Intención
de voto", "Intención de voto
alternativo", "Simpatía partidista",
"Ideología", "Clasificación
ideológica PS", "Clasificación
ideológica PC", "Clasificación
ideológica PI", "Clasificación
ideológica SA", "Clasificación
ideológica IA", "Valoración
PS", "Valoración PC",
"Valoración PI", "Valoración
SA", "Valoración IA",
"Participación electoral 2019", "Recuerdo
de voto 2019", "Cercanía partidista")
kable(GKcis3[,1:6], row.names = T,escape = FALSE, align=rep('c', 29), position = "center", font_size = 30, caption = "<leftr><em>
Goodman and Kruskal Tau") %>%
kable_classic(full_width = F, html_font = "Times
New Roman")%>%
column_spec(1, bold = T)
kable(GKcis3[,7:12], row.names = T,escape = FALSE, align=rep('c', 29), position = "center", font_size = 30)
%>%
kable_classic(full_width = F, html_font = "Times
New Roman")%>%
column_spec(1, bold = T)
kable(GKcis3[13:18], escape = FALSE, align=rep('c', 29), position = "center")
%>%
kable_classic(full_width = F, html_font = "Times
New Roman")%>%
column_spec(1, bold = T)
kable(GKcis3[19:24], escape = FALSE, align=rep('c', 29), position = "center")
%>%
kable_classic(full_width = F, html_font = "Times
New Roman")%>%
column_spec(1, bold = T)
kable(GKcis3[24:30], escape = FALSE, align=rep('c', 29), position = "center")
%>%
kable_classic(full_width = F, html_font = "Times
New Roman")%>%
column_spec(1, bold = T)
-
Intervalos de
Bootstrap
# Tau entre 0.1
y 0.2
VI1 =
which(GKcis2 >= 0.1 & GKcis2 <
0.2, arr.ind=TRUE)
dim(VI1)
library(bootstrap)
IC_VI1
<- c()
for(i in 1:nrow(VI1))
{
var1 = VI1[i,1]
var2 = VI1[i,2]
xdata <-
as.matrix(cis2[,c(var1,var2)])
theta <- function(x,
xdata){GKtau(xdata[x,1],xdata[x,2],
includeNA = "ifany")$tauxy}
n <- 3817
results <- boott(1:n,theta, xdata)
IC_VI1 <- c(IC_VI1,round(results$confpoints[c(3,9)], 3))
}
IC_VI1_2
<- matrix(IC_VI1, ncol = 2, nrow =
dim(VI1)[1], byrow = T)
Int_VI1_2
<- c()
for(i in 1:nrow(IC_VI1_2))
{
Int_VI1_2[i]
<- paste0("( ", IC_VI1_2[i,1], "
; ", IC_VI1_2[i,2], "
)")
}
fila
<- c()
col
<- c()
valor
<- c()
for(i in 1:nrow(VI1))
{
fila[i]
<- c(rownames(GKcis2)[VI1[i,"row"]])
col[i]
<- c(rownames(GKcis2)[VI1[i,"col"]])
valor <- c(valor, GKcis2[fila[i],col[i]])
}
M_INT1
<- matrix(c(fila,col,valor), nrow =
dim(VI1)[1], ncol = 3)
M_INT1
<- cbind(M_INT1, Int_VI1_2)
M_INT1
<- as.data.frame(M_INT1)
kable(M_INT1, escape = FALSE, align="llcc", col.names = c("Variable
1", "Variable 2", "K-tau", "Intervalo
Bootstap"), position = "center")
%>%
kable_classic(full_width = F, html_font = "Times
New Roman")
# Tau entre 0.2
y 0.5
VI2 =
which(GKcis2 >= 0.2 & GKcis2 <
0.5, arr.ind=TRUE)
dim(VI2)
IC_VI2
<- c()
for(i in 1:nrow(VI2))
{
var1 = VI2[i,1]
var2 = VI2[i,2]
xdata <-
as.matrix(cis2[,c(var1,var2)])
theta <- function(x,
xdata){GKtau(xdata[x,1],xdata[x,2],
includeNA = "ifany")$tauxy}
n <- 3817
results <- boott(1:n,theta, xdata)
IC_VI2 <- c(IC_VI2,round(results$confpoints[c(3,9)],3))
}
IC_VI2_2
<- matrix(IC_VI2, ncol = 2, nrow =
dim(VI2)[1], byrow = T)
Int_VI2_2
<- c()
for(i in 1:nrow(IC_VI2_2))
{
Int_VI2_2[i]
<- paste0("( ", IC_VI2_2[i,1], "
; ", IC_VI2_2[i,2], "
)")
}
fila
<- c()
col
<- c()
valor
<- c()
for(i in 1:nrow(VI2))
{
fila[i]
<- c(rownames(GKcis2)[VI2[i,"row"]])
col[i]
<- c(rownames(GKcis2)[VI2[i,"col"]])
valor <- c(valor, GKcis2[fila[i],col[i]])
}
M_INT2
<- matrix(c(fila,col, valor), nrow =
dim(VI2)[1] , ncol = 3)
M_INT2
<- cbind(M_INT2,
Int_VI2_2)
M_INT2
<- as.data.frame(M_INT2)
kable(M_INT2, escape = FALSE, align="llcc", col.names = c("Variable
1", "Variable 2", "K-tau", "Intervalo
Bootstap")) %>%
kable_classic(full_width = F, html_font = "Times
New Roman")
# Tau mayor de
0.5
VI3 =
which(GKcis2 >= 0.5 & GKcis2 <
1, arr.ind=TRUE)
dim(VI3)
IC_VI3
<- c()
set.seed(1, sample.kind = "Rounding")
for(i in 1:nrow(VI3))
{
var1 = VI3[i,1]
var2 = VI3[i,2]
xdata <- as.matrix(cis2[,c(var1,var2)])
theta <- function(x,
xdata){GKtau(xdata[x,1],xdata[x,2],
includeNA = "ifany")$tauxy}
n <- 3817
results <- boott(1:n,theta, xdata)
IC_VI3 <- c(IC_VI3,round(results$confpoints[c(3,9)],3))
}
IC_VI3_2
<- matrix(IC_VI3, ncol = 2, nrow =
dim(VI3)[1], byrow = T)
Int_VI3_2
<- c()
for(i in 1:nrow(IC_VI3_2))
{
Int_VI3_2[i]
<- paste0("( ", IC_VI3_2[i,1], "
; ", IC_VI3_2[i,2], "
)")
}
fila
<- c()
col
<- c()
valor
<- c()
for(i in 1:nrow(VI3))
{
fila[i]
<- c(rownames(GKcis2)[VI3[i,"row"]])
col[i]
<- c(rownames(GKcis2)[VI3[i,"col"]])
valor <- c(valor, GKcis2[fila[i],col[i]])
}
M_INT3
<- matrix(c(fila,col, valor), nrow =
dim(VI3)[1], ncol = 3)
M_INT3
<- cbind(M_INT3, Int_VI3_2)
M_INT3
<- as.data.frame(M_INT3)
colnames(M_INT3)
<- NULL
kable(M_INT3, escape = FALSE, align="llcc", col.names = c("Variable
1", "Variable 2", "K-tau", "Intervalo
Bootstap")) %>%
kable_classic(full_width = F, html_font = "Times
New Roman")
-
Partición de la muestra
# Ordenación
de variables según "NS/NC"
sort(colSums(cis2 == "99"))
library(caret)
#Personas han
respondido a Intención de Voto (IV):
IV
<- cis2[cis2[,"Voto_cod"]!="99",]
dim(IV)[1]
#Personas que
no han respondido a Intención de Voto (IV):
N_IV
<- cis2[cis2[,"Voto_cod"]=="99",]
dim(N_IV)[1]
#Muestras de
entrenamiento y test de las personas que han respondido IV:
set.seed(0, sample.kind = "Rounding")
train_IV =
sample(1:dim(IV)[1],
dim(IV)[1]*(2/3))
test_IV = -train_IV
train = IV[train_IV,]
test = IV[test_IV,]
dim(train)[1]
dim(test)[1]
dim(IV)[1]
dim(train)[1]+dim(test)[1]
#Datos de
partida (nuevo conjunto de datos) -> Personas que no han respondido IV y
train IV
conjunto
= rbind(train, N_IV)
dim(conjunto)[1]
library(dropR)
library(tidyverse)
-
Imputación de la situación laboral
# M = 1
train2
<- conjunto[conjunto[,"Situ"]!="99",]
impu
<- conjunto[conjunto[,"Situ"]=="99",]
dim(train2)[1]
dim(impu)[1]
M1 = cis2
table(train2$Situ)
train2[,"Situ"]
<- droplevels(train2[,"Situ"])
table(train2$Situ)
ctrl
<- trainControl(method = "cv", number = 5)
# RF train with
CV to optimize number of variables
#library(doMC)
#registerDoMC(cores
= 2)
set.seed(0, sample.kind = "Rounding")
rfFit
<- train(Situ ~ .,
method = "rf",
data = train2,
preProcess = c("center", "scale"),
tuneGrid =
expand.grid(mtry = c(2:10)),
trControl = ctrl)
library(flextable)
rfFit
varImp(rfFit)
par(family = "serif")
plot(varImp(rfFit), top = 10, col = "#74A9CF", main =
expression(italic("Importancia de variables Situación laboral")), family = "serif")
rfFit$finalModel
pred
<- predict(rfFit, test)
impu_Situ
<- predict(rfFit, impu)
table(pred)
test_Situ
<- test$Situ[test$Situ!=99]
test_Situ
<- droplevels(test_Situ)
confusionMatrix(pred[test$Situ!=99],test_Situ)
(CM1_Situ
<- confusionMatrix(pred[test$Situ!=99],test_Situ)$table)
AC1_Situ
<- as.vector(confusionMatrix(pred[test$Situ!=99],test_Situ)$overall[1])
NA_Situ
<- as.numeric(rownames(test[test[,"Situ"]=='99',]))
pos =
c()
for(i in 1:nrow(test))
{
if(test[i,"Situ"]=="99")
{
pos=c(pos,i)
}
}
NA_Situ_impu
<- as.numeric(rownames(impu))
M1[NA_Situ,"Situ"]
<- pred[pos]
M1[NA_Situ_impu,"Situ"]
<- impu_Situ
M = 2
M2 = cis2
set.seed(1, sample.kind = "Rounding")
rfFit2
<- train(Situ ~ .,
method = "rf",
data = train2,
preProcess = c("center", "scale"),
tuneGrid =
expand.grid(mtry = c(2:10)),
trControl = ctrl)
rfFit2
varImp(rfFit2)
plot(varImp(rfFit2), top = 10, col = "#0570B0", main = "M2")
rfFit2$finalModel
pred2
<- predict(rfFit2, test)
impu_Situ2
<- predict(rfFit2, impu)
table(pred2)
confusionMatrix(pred2[test$Situ!=99],test_Situ)
CM2_Situ
<- confusionMatrix(pred2[test$Situ!=99],test_Situ)$table
AC2_Situ
<- as.vector(confusionMatrix(pred2[test$Situ!=99],test_Situ)$overall[1])
M2[NA_Situ,"Situ"]
<- pred2[pos]
M2[NA_Situ_impu,"Situ"]
<- impu_Situ2
M = 3
M3 = cis2
set.seed(2, sample.kind = "Rounding")
rfFit3
<- train(Situ ~ .,
method = "rf",
data = train2,
preProcess = c("center", "scale"),
tuneGrid =
expand.grid(mtry = c(2:10)),
trControl = ctrl)
rfFit3
varImp(rfFit3)
plot(varImp(rfFit3), top = 10, col = "#41AE76", main = "M3")
rfFit3$finalModel
pred3
<- predict(rfFit3, test)
impu_Situ3
<- predict(rfFit3, impu)
table(pred3)
confusionMatrix(pred3[test$Situ!=99],test_Situ)
CM3_Situ
<- confusionMatrix(pred3[test$Situ!=99],test_Situ)$table
AC3_Situ
<- as.vector(confusionMatrix(pred3[test$Situ!=99],test_Situ)$overall[1])
M3[NA_Situ,"Situ"]
<- pred3[pos]
M3[NA_Situ_impu,"Situ"]
<- impu_Situ3
CMT_Situ
<- (CM1_Situ)
for(i in 1:nrow(CMT_Situ))
{
for(j in 1:ncol(CMT_Situ))
{
if((CM1_Situ[i,j]+CM2_Situ[i,j]+CM3_Situ[i,j])%%3 != 0)
{
CMT_Situ[i,j] = as.character(round((CM1_Situ[i,j]+CM2_Situ[i,j]+CM3_Situ[i,j])/3,2))
}else{
CMT_Situ[i,j] =
as.character(as.integer((CM1_Situ[i,j]+CM2_Situ[i,j]+CM3_Situ[i,j])/3))
}
}
}
CMT_Situ =
cbind(c(1:6), CMT_Situ)
CM1_Situ =
cbind(c(1:6), CM1_Situ)
CM2_Situ =
cbind(c(1:6), CM2_Situ)
CM3_Situ =
cbind(c(1:6), CM3_Situ)
kable(CMT_Situ, position = "center", booktabs = TRUE, align = "cccccc", caption = "<left><em>
Matriz de confusión Situación laboral </em></center>", escape = FALSE, col.names = c("Predicción", "1","2","3","4","5","6"), position = "center")%>%
kableExtra::footnote(symbol
= c("Al tomar la media de los elementos de las matrices de
confusión,
es posible que no se obtenga un
número entero"), threeparttable=T)%>%
kable_classic(full_width = F, html_font = "Times
New Roman")%>%
column_spec(1:7, width = "1.2cm")%>%
add_header_above(c(" " = 1, "Referencia" = 1, "
" = 3, " " = 2))
kable(CM1_Situ,
position = "center",
booktabs = TRUE, align
= "cccccc", caption
= "<left><em> Matriz de confusión Situación laboral 1ª
imputación </em></center>", escape
= FALSE, col.names = c("Predicción",
"1","2","3","4","5","6"),
position = "center")%>%
kable_classic(full_width = F, html_font = "Times
New Roman")%>%
column_spec(1:7, width = "1.2cm")%>%
add_header_above(c(" " = 1, "Referencia" = 1, "
" = 3, " " = 2))
kable(CM2_Situ,
position = "center",
booktabs = TRUE, align
= "cccccc", caption
= "<left><em> Matriz de confusión Situación laboral 2ª
imputación </em></center>", escape
= FALSE, col.names = c("Predicción",
"1","2","3","4","5","6"),
position = "center")%>%
kable_classic(full_width = F, html_font = "Times
New Roman")%>%
column_spec(1:7, width = "1.2cm")%>%
add_header_above(c(" " = 1, "Referencia" = 1, "
" = 3, " " = 2))
kable(CM3_Situ,
position = "center",
booktabs = TRUE, align
= "cccccc", caption
= "<left><em> Matriz de confusión Situación laboral 3ª imputación
</em></center>", escape
= FALSE, col.names = c("Predicción",
"1","2","3","4","5","6"),
position = "center")%>%
kable_classic(full_width = F, html_font = "Times
New Roman")%>%
column_spec(1:7, width = "1.2cm")%>%
add_header_above(c(" " = 1, "Referencia" = 1, "
" = 3, " " = 2))
ACT_Situ
<- c(AC1_Situ,AC2_Situ,AC3_Situ)
ACM_Situ
<- mean(c(ACT_Situ))
ACSD_Situ
<- sqrt(var(ACT_Situ)/3)
-
Imputación del Nivel de Estudios
# M = 1
train2_Estudios
<- conjunto[conjunto[,"Estudios"]!="99",]
impu_Estudios
<- conjunto[conjunto[,"Estudios"]=="99",]
dim(train2_Estudios)[1]
dim(impu_Estudios)[1]
table(train2_Estudios$Estudios)
train2_Estudios[,"Estudios"]
<- droplevels(train2_Estudios[,"Estudios"])
table(train2_Estudios$Estudios)
ctrl
<- trainControl(method = "cv", number = 5)
# RF train with
CV to optimize number of variables
#library(doMC)
#registerDoMC(cores
= 2)
set.seed(0, sample.kind = "Rounding")
rfFit_Estudios
<- train(Estudios ~ .,
method = "rf",
data = train2_Estudios,
preProcess = c("center", "scale"),
tuneGrid =
expand.grid(mtry = c(2:10)),
trControl = ctrl)
rfFit_Estudios
varImp(rfFit_Estudios)
plot(varImp(rfFit_Estudios),
top = 10, col
= "#74A9CF", main
= expression(italic("Importancia de variables
Situación laboral")), adj
= 0)
rfFit_Estudios$finalModel
pred_Estudios
<- predict(rfFit_Estudios, test)
impu_Estudios1
<- predict(rfFit_Estudios, impu_Estudios)
table(pred_Estudios)
test_Estudios
<- test$Estudios[test$Estudios!=99]
test_Estudios
<- droplevels(test_Estudios)
confusionMatrix(pred_Estudios[test$Estudios!=99],test_Estudios)
CM1_Estudios
<- confusionMatrix(pred_Estudios[test$Estudios!=99],test_Estudios)$table
AC1_Estudios
<- as.vector(confusionMatrix(pred_Estudios[test$Estudios!=99],test_Estudios)$overall[1])
NA_Estudios
<- as.numeric(rownames(test[test[,"Estudios"]=='99',]))
pos =
c()
for(i in 1:nrow(test))
{
if(test[i,"Estudios"]=="99")
{
pos=c(pos,i)
}
}
NA_Estudios_impu
<- as.numeric(rownames(impu_Estudios))
M1[NA_Estudios,"Estudios"]
<- pred_Estudios[pos]
M1[NA_Estudios_impu,"Estudios"]
<- impu_Estudios1
M = 2
set.seed(1, sample.kind = "Rounding")
rfFit2_Estudios
<- train(Estudios ~ .,
method = "rf",
data = train2_Estudios,
preProcess = c("center", "scale"),
tuneGrid =
expand.grid(mtry = c(2:10)),
trControl = ctrl)
rfFit2_Estudios
varImp(rfFit2_Estudios)
plot(varImp(rfFit2_Estudios), top = 10, col = "#0570B0", main = "M2")
rfFit2_Estudios$finalModel
pred2_Estudios
<- predict(rfFit2_Estudios, test)
impu_Estudios2
<- predict(rfFit2_Estudios, impu_Estudios)
table(pred2_Estudios)
confusionMatrix(pred2_Estudios[test$Estudios!=99],test_Estudios)
CM2_Estudios
<- confusionMatrix(pred2_Estudios[test$Estudios!=99],test_Estudios)$table
AC2_Estudios
<- as.vector(confusionMatrix(pred2_Estudios[test$Estudios!=99],test_Estudios)$overall[1])
M2[NA_Estudios,"Estudios"]
<- pred2_Estudios[pos]
M2[NA_Estudios_impu,"Estudios"]
<- impu_Estudios2
M = 3
set.seed(2, sample.kind = "Rounding")
rfFit3_Estudios
<- train(Estudios ~ .,
method = "rf",
data = train2_Estudios,
preProcess = c("center", "scale"),
tuneGrid =
expand.grid(mtry = c(2:10)),
trControl = ctrl)
rfFit3_Estudios
varImp(rfFit3_Estudios)
plot(varImp(rfFit3_Estudios), top = 10, col = "#41AE76", main = "M3")
pred3_Estudios
<- predict(rfFit3_Estudios, test)
impu_Estudios3
<- predict(rfFit3_Estudios, impu_Estudios)
table(pred3_Estudios)
confusionMatrix(pred3_Estudios[test$Estudios!=99],test_Estudios)
CM3_Estudios
<- confusionMatrix(pred3_Estudios[test$Estudios!=99],test_Estudios)$table
AC3_Estudios
<- as.vector(confusionMatrix(pred3_Estudios[test$Estudios!=99],test_Estudios)$overall[1])
M3[NA_Estudios,"Estudios"]
<- pred3_Estudios[pos]
M3[NA_Estudios_impu,"Estudios"]
<- impu_Estudios3
CMT_Estudios
<- (CM1_Estudios)
for(i in 1:nrow(CMT_Estudios))
{
for(j in 1:ncol(CMT_Estudios))
{
if((CM1_Estudios[i,j]+CM2_Estudios[i,j]+CM3_Estudios[i,j])%%3
!= 0)
{
CMT_Estudios[i,j]
= as.character(round((CM1_Estudios[i,j]+CM2_Estudios[i,j]+CM3_Estudios[i,j])/3,2))
}else{
CMT_Estudios[i,j]
= as.character(as.integer((CM1_Estudios[i,j]+CM2_Estudios[i,j]+CM3_Estudios[i,j])/3))
}
}
}
CMT_Estudios
= cbind(c(1:4),
CMT_Estudios)
kable(CMT_Estudios,
position = "center",
booktabs = TRUE, align
= "cccccc", caption
= "<left><em> Matriz de confusión Nivel de Estudios
</em></center>", escape
= FALSE, col.names = c("Prediction",
"1","2","3","4"),
position = "center",
row_label_position = "c",
font_size = 15)%>%
kableExtra::footnote(symbol
= c("Al tomar la media de los elementos de las matrices de
confusión,
es posible que no se obtenga un
número entero"), threeparttable=T)%>%
kable_classic(full_width = F, html_font = "Times
New Roman")%>%
add_header_above(c(" " = 1, "Reference" = 1, "
" = 3))%>%
column_spec(1:5,
width = "1.2cm")
ACT_Estudios
<- c(AC1_Estudios,AC2_Estudios,AC3_Estudios)
ACM_Estudios
<- mean(c(ACT_Estudios))
ACSD_Estudios
<- sqrt(var(ACT_Estudios)/3)
-
Imputación del Estado Civil
# M = 1
train2_civil_cod
<- conjunto[conjunto[,"civil_cod"]!="99",]
impu_civil_cod
<- conjunto[conjunto[,"civil_cod"]=="99",]
dim(train2_civil_cod)[1]
dim(impu_civil_cod)[1]
table(train2_civil_cod$civil_cod)
train2_civil_cod[,"civil_cod"]
<- droplevels(train2_civil_cod[,"civil_cod"])
table(train2_civil_cod$civil_cod)
ctrl
<- trainControl(method = "cv", number = 5)
# RF train with
CV to optimize number of variables
#library(doMC)
#registerDoMC(cores
= 2)
set.seed(0, sample.kind = "Rounding")
rfFit_civil_cod
<- train(civil_cod ~ .,
method = "rf",
data = train2_civil_cod,
preProcess = c("center", "scale"),
tuneGrid =
expand.grid(mtry = c(2:10)),
trControl = ctrl)
rfFit_civil_cod
varImp(rfFit_civil_cod)
plot(varImp(rfFit_civil_cod), top = 10, col = "#74A9CF", main = "M1")
rfFit_civil_cod$finalModel
pred_civil_cod
<- predict(rfFit_civil_cod, test)
impu_civil_cod1
<- predict(rfFit_civil_cod, impu_civil_cod)
table(pred_civil_cod)
test_civil_cod
<- test$civil_cod[test$civil_cod!=99]
test_civil_cod
<- droplevels(test_civil_cod)
confusionMatrix(pred_civil_cod[test$civil_cod!=99],test_civil_cod)
CM1_civil_cod
<- confusionMatrix(pred_civil_cod[test$civil_cod!=99],test_civil_cod)$table
AC1_civil_cod
<- as.vector(confusionMatrix(pred_civil_cod[test$civil_cod!=99],test_civil_cod)$overall[1])
NA_civil_cod
<- as.numeric(rownames(test[test[,"civil_cod"]=='99',]))
pos =
c()
for(i in 1:nrow(test))
{
if(test[i,"civil_cod"]=="99")
{
pos=c(pos,i)
}
}
NA_civil_cod_impu
<- as.numeric(rownames(impu_civil_cod))
M1[NA_civil_cod,"civil_cod"]
<- pred_civil_cod[pos]
M1[NA_civil_cod_impu,"civil_cod"]
<- impu_civil_cod1
M = 2
set.seed(1, sample.kind = "Rounding")
rfFit2_civil_cod
<- train(civil_cod ~ .,
method = "rf",
data = train2_civil_cod,
preProcess = c("center", "scale"),
tuneGrid =
expand.grid(mtry = c(2:10)),
trControl = ctrl)
rfFit2_civil_cod
varImp(rfFit2_civil_cod)
plot(varImp(rfFit2_civil_cod), top = 10, col = "#0570B0", main = "M2")
rfFit2_civil_cod$finalModel
pred2_civil_cod
<- predict(rfFit2_civil_cod, test)
impu_civil_cod2
<- predict(rfFit2_civil_cod, impu_civil_cod)
table(pred2_civil_cod)
confusionMatrix(pred2_civil_cod[test$civil_cod!=99],test_civil_cod)
CM2_civil_cod
<- confusionMatrix(pred2_civil_cod[test$civil_cod!=99],test_civil_cod)$table
AC2_civil_cod
<- as.vector(confusionMatrix(pred2_civil_cod[test$civil_cod!=99],test_civil_cod)$overall[1])
M2[NA_civil_cod,"civil_cod"]
<- pred2_civil_cod[pos]
M2[NA_civil_cod_impu,"civil_cod"]
<- impu_civil_cod2
M = 3
set.seed(2, sample.kind = "Rounding")
rfFit3_civil_cod
<- train(civil_cod ~ .,
method = "rf",
data = train2_civil_cod,
preProcess = c("center", "scale"),
tuneGrid =
expand.grid(mtry = c(2:10)),
trControl = ctrl)
rfFit3_civil_cod
varImp(rfFit3_civil_cod)
plot(varImp(rfFit3_civil_cod), top = 10, col = "#41AE76", main = "M3")
rfFit3_civil_cod$finalModel
pred3_civil_cod
<- predict(rfFit3_civil_cod, test)
impu_civil_cod3
<- predict(rfFit3_civil_cod, impu_civil_cod)
table(pred3_civil_cod)
confusionMatrix(pred3_civil_cod[test$civil_cod!=99],test_civil_cod)
CM3_civil_cod
<- confusionMatrix(pred3_civil_cod[test$civil_cod!=99],test_civil_cod)$table
AC3_civil_cod
<- as.vector(confusionMatrix(pred3_civil_cod[test$civil_cod!=99],test_civil_cod)$overall[1])
M3[NA_civil_cod,"civil_cod"]
<- pred3_civil_cod[pos]
M3[NA_civil_cod_impu,"civil_cod"]
<- impu_civil_cod3
CMT_civil_cod
<- (CM1_civil_cod)
for(i in 1:nrow(CMT_civil_cod))
{
for(j in 1:ncol(CMT_civil_cod))
{
if((CM1_civil_cod[i,j]+CM2_civil_cod[i,j]+CM3_civil_cod[i,j])%%3 != 0)
{
CMT_civil_cod[i,j] =
as.character(round((CM1_civil_cod[i,j]+CM2_civil_cod[i,j]+CM3_civil_cod[i,j])/3,2))
}else{
CMT_civil_cod[i,j] =
as.character(as.integer((CM1_civil_cod[i,j]+CM2_civil_cod[i,j]+CM3_civil_cod[i,j])/3))
}
}
}
CMT_civil_cod =
cbind(c(1:3), CMT_civil_cod)
kable(CMT_civil_cod, position = "center", booktabs = TRUE, align = "cccccc", caption = "<left><em>
Matriz de confusión Estado Civil </em></center>", escape = FALSE, col.names = c("Prediction", "1","2","3"), position = "center", row_label_position = "c", font_size = 15)%>%
kableExtra::footnote(symbol
= c("Al tomar la media de los elementos de las matrices de
confusión,
es posible que no se obtenga un
número entero"), threeparttable=T)%>%
kable_classic(full_width = F, html_font = "Times
New Roman")%>%
add_header_above(c(" " = 1, "Reference" = 1, "
" = 2))%>%
column_spec(1:4, width = "1.2cm")
ACT_civil_cod
<- c(AC1_civil_cod,AC2_civil_cod,AC3_civil_cod)
ACM_civil_cod
<- mean(c(ACT_civil_cod))
ACSD_civil_cod
<- sqrt(var(ACT_civil_cod)/3)
-
Imputación variable
participación electoral
# M = 1
train2_Participacion_cod
<- conjunto[conjunto[,"Participacion_cod"]!="99",]
impu_Participacion_cod
<- conjunto[conjunto[,"Participacion_cod"]=="99",]
dim(train2_Participacion_cod)[1]
dim(impu_Participacion_cod)[1]
table(train2_Participacion_cod$Participacion_cod)
train2_Participacion_cod[,"Participacion_cod"]
<- droplevels(train2_Participacion_cod[,"Participacion_cod"])
table(train2_Participacion_cod$Participacion_cod)
ctrl
<- trainControl(method = "cv", number = 5)
# RF train with
CV to optimize number of variables
#library(doMC)
#registerDoMC(cores
= 2)
set.seed(0, sample.kind = "Rounding")
rfFit_Participacion_cod
<- train(Participacion_cod ~ .,
method = "rf",
data = train2_Participacion_cod,
preProcess = c("center", "scale"),
tuneGrid =
expand.grid(mtry = c(2:10)),
trControl = ctrl)
rfFit_Participacion_cod
varImp(rfFit_Participacion_cod)
plot(varImp(rfFit_Participacion_cod), top = 10, col = "#74A9CF", main = "M1")
rfFit_Participacion_cod$finalModel
pred_Participacion_cod
<- predict(rfFit_Participacion_cod, test)
impu_Participacion_cod1
<- predict(rfFit_Participacion_cod, impu_Participacion_cod)
table(pred_Participacion_cod)
test_Participacion_cod
<- test$Participacion_cod[test$Participacion_cod!=99]
test_Participacion_cod
<- droplevels(test_Participacion_cod)
confusionMatrix(pred_Participacion_cod[test$Participacion_cod!=99],test_Participacion_cod)
CM1_Participacion_cod
<- confusionMatrix(pred_Participacion_cod[test$Participacion_cod!=99],test_Participacion_cod)$table
AC1_Participacion_cod
<- as.vector(confusionMatrix(pred_Participacion_cod[test$Participacion_cod!=99],test_Participacion_cod)$overall[1])
NA_Participacion_cod
<- as.numeric(rownames(test[test[,"Participacion_cod"]=='99',]))
pos =
c()
for(i in 1:nrow(test))
{
if(test[i,"Participacion_cod"]=="99")
{
pos=c(pos,i)
}
}
NA_Participacion_cod_impu
<- as.numeric(rownames(impu_Participacion_cod))
M1[NA_Participacion_cod,"Participacion_cod"]
<- pred_Participacion_cod[pos]
M1[NA_Participacion_cod_impu,"Participacion_cod"]
<- impu_Participacion_cod1
M = 2
set.seed(1, sample.kind = "Rounding")
rfFit2_Participacion_cod
<- train(Participacion_cod ~ .,
method = "rf",
data = train2_Participacion_cod,
preProcess = c("center", "scale"),
tuneGrid =
expand.grid(mtry = c(2:10)),
trControl = ctrl)
rfFit2_Participacion_cod
varImp(rfFit2_Participacion_cod)
plot(varImp(rfFit2_Participacion_cod), top = 10, col = "#0570B0", main = "M2")
rfFit2_Participacion_cod$finalModel
pred2_Participacion_cod
<- predict(rfFit2_Participacion_cod, test)
impu_Participacion_cod2
<- predict(rfFit2_Participacion_cod, impu_Participacion_cod)
table(pred2_Participacion_cod)
confusionMatrix(pred2_Participacion_cod[test$Participacion_cod!=99],test_Participacion_cod)
CM2_Participacion_cod
<- confusionMatrix(pred2_Participacion_cod[test$Participacion_cod!=99],test_Participacion_cod)$table
AC2_Participacion_cod
<- as.vector(confusionMatrix(pred2_Participacion_cod[test$Participacion_cod!=99],test_Participacion_cod)$overall[1])
M2[NA_Participacion_cod,"Participacion_cod"]
<- pred2_Participacion_cod[pos]
M2[NA_Participacion_cod_impu,"Participacion_cod"]
<- impu_Participacion_cod2
M = 3
set.seed(2, sample.kind = "Rounding")
rfFit3_Participacion_cod
<- train(Participacion_cod ~ .,
method = "rf",
data = train2_Participacion_cod,
preProcess = c("center", "scale"),
tuneGrid =
expand.grid(mtry = c(2:10)),
trControl = ctrl)
rfFit3_Participacion_cod
varImp(rfFit3_Participacion_cod)
plot(varImp(rfFit3_Participacion_cod),
top = 10, col = "#41AE76", main = "M3")
rfFit3_Participacion_cod$finalModel
pred3_Participacion_cod
<- predict(rfFit3_Participacion_cod, test)
impu_Participacion_cod3
<- predict(rfFit3_Participacion_cod, impu_Participacion_cod)
table(pred3_Participacion_cod)
confusionMatrix(pred3_Participacion_cod[test$Participacion_cod!=99],test_Participacion_cod)
CM3_Participacion_cod
<-
confusionMatrix(pred3_Participacion_cod[test$Participacion_cod!=99],test_Participacion_cod)$table
AC3_Participacion_cod
<- as.vector(confusionMatrix(pred3_Participacion_cod[test$Participacion_cod!=99],test_Participacion_cod)$overall[1])
M3[NA_Participacion_cod,"Participacion_cod"]
<- pred3_Participacion_cod[pos]
M3[NA_Participacion_cod_impu,"Participacion_cod"]
<- impu_Participacion_cod3
# Matriz
Confusión
CMT_Participacion_cod
<- (CM1_Participacion_cod)
for(i in 1:nrow(CMT_Participacion_cod))
{
for(j in 1:ncol(CMT_Participacion_cod))
{
if((CM1_Participacion_cod[i,j]+CM2_Participacion_cod[i,j]+CM3_Participacion_cod[i,j])%%3 != 0)
{
CMT_Participacion_cod[i,j] =
as.character(round((CM1_Participacion_cod[i,j]+CM2_Participacion_cod[i,j]+CM3_Participacion_cod[i,j])/3,2))
}else{
CMT_Participacion_cod[i,j] = as.character(as.integer((CM1_Participacion_cod[i,j]+CM2_Participacion_cod[i,j]+CM3_Participacion_cod[i,j])/3))
}
}
}
CMT_Participacion_cod
= cbind(c(1:3),
CMT_Participacion_cod)
kable(CMT_Participacion_cod, position = "center", booktabs = TRUE, align = "cccccc", caption = "<left><em>
Matriz de confusión Participación electoral </em></center>", escape = FALSE, col.names = c("Prediction", "1","2","3"), position = "center", row_label_position = "c", font_size = 15, latex_options="scale_down")%>%
kableExtra::footnote(symbol
= c("Al tomar la media de los elementos de las matrices de
confusión,
es posible que no se obtenga un
número entero"), threeparttable=T)%>%
kable_classic(full_width = F, html_font = "Times
New Roman")%>%
add_header_above(c(" " = 1, "Reference" = 1, "
" = 2))%>%
column_spec(1:4, width = "1.2cm")
ACT_Participacion_cod
<- c(AC1_Participacion_cod,AC2_Participacion_cod,AC3_Participacion_cod)
ACM_Participacion_cod
<- mean(c(ACT_Participacion_cod))
ACSD_Participacion_cod
<- sqrt(var(ACT_Participacion_cod)/3)
-
Imputación de la Religión
# M = 1
train2_Religion_cod
<- conjunto[conjunto[,"Religion_cod"]!="99",]
impu_Religion_cod
<- conjunto[conjunto[,"Religion_cod"]=="99",]
dim(train2_Religion_cod)[1]
dim(impu_Religion_cod)[1]
table(train2_Religion_cod$Religion_cod)
train2_Religion_cod[,"Religion_cod"]
<- droplevels(train2_Religion_cod[,"Religion_cod"])
table(train2_Religion_cod$Religion_cod)
ctrl
<- trainControl(method = "cv", number = 5)
# RF train with
CV to optimize number of variables
#library(doMC)
#registerDoMC(cores
= 2)
set.seed(0, sample.kind = "Rounding")
rfFit_Religion_cod
<- train(Religion_cod ~ .,
method = "rf",
data = train2_Religion_cod,
preProcess = c("center", "scale"),
tuneGrid =
expand.grid(mtry = c(2:10)),
trControl = ctrl)
rfFit_Religion_cod
varImp(rfFit_Religion_cod)
plot(varImp(rfFit_Religion_cod), top = 10, col = "#74A9CF", main = "M1")
rfFit_Religion_cod$finalModel
pred_Religion_cod
<- predict(rfFit_Religion_cod, test)
impu_Religion_cod1
<- predict(rfFit_Religion_cod, impu_Religion_cod)
table(pred_Religion_cod)
test_Religion_cod
<- test$Religion_cod[test$Religion_cod!=99]
test_Religion_cod
<- droplevels(test_Religion_cod)
confusionMatrix(pred_Religion_cod[test$Religion_cod!=99],test_Religion_cod)
CM1_Religion_cod
<- confusionMatrix(pred_Religion_cod[test$Religion_cod!=99],test_Religion_cod)$table
AC1_Religion_cod
<- as.vector(confusionMatrix(pred_Religion_cod[test$Religion_cod!=99],test_Religion_cod)$overall[1])
NA_Religion_cod
<- as.numeric(rownames(test[test[,"Religion_cod"]=='99',]))
pos =
c()
for(i in 1:nrow(test))
{
if(test[i,"Religion_cod"]=="99")
{
pos=c(pos,i)
}
}
NA_Religion_cod_impu
<- as.numeric(rownames(impu_Religion_cod))
M1[NA_Religion_cod,"Religion_cod"]
<- pred_Religion_cod[pos]
M1[NA_Religion_cod_impu,"Religion_cod"]
<- impu_Religion_cod1
M = 2
set.seed(1, sample.kind = "Rounding")
rfFit2_Religion_cod
<- train(Religion_cod ~ .,
method = "rf",
data = train2_Religion_cod,
preProcess = c("center", "scale"),
tuneGrid =
expand.grid(mtry = c(2:10)),
trControl = ctrl)
rfFit2_Religion_cod
varImp(rfFit2_Religion_cod)
plot(varImp(rfFit2_Religion_cod), top = 10, col = "#0570B0", main = "M2")
rfFit2_Religion_cod$finalModel
pred2_Religion_cod
<- predict(rfFit2_Religion_cod, test)
impu_Religion_cod2
<- predict(rfFit2_Religion_cod, impu_Religion_cod)
table(pred2_Religion_cod)
confusionMatrix(pred2_Religion_cod[test$Religion_cod!=99],test_Religion_cod)
CM2_Religion_cod
<- confusionMatrix(pred2_Religion_cod[test$Religion_cod!=99],test_Religion_cod)$table
AC2_Religion_cod
<- as.vector(confusionMatrix(pred2_Religion_cod[test$Religion_cod!=99],test_Religion_cod)$overall[1])
M2[NA_Religion_cod,"Religion_cod"]
<- pred2_Religion_cod[pos]
M2[NA_Religion_cod_impu,"Religion_cod"]
<- impu_Religion_cod2
M = 3
set.seed(2, sample.kind = "Rounding")
rfFit3_Religion_cod
<- train(Religion_cod ~ .,
method = "rf",
data = train2_Religion_cod,
preProcess = c("center", "scale"),
tuneGrid =
expand.grid(mtry = c(2:10)),
trControl = ctrl)
rfFit3_Religion_cod
varImp(rfFit3_Religion_cod)
plot(varImp(rfFit3_Religion_cod), top = 10, col = "#41AE76", main = "M3")
rfFit3_Religion_cod$finalModel
pred3_Religion_cod
<- predict(rfFit3_Religion_cod, test)
impu_Religion_cod3
<- predict(rfFit3_Religion_cod, impu_Religion_cod)
table(pred3_Religion_cod)
confusionMatrix(pred3_Religion_cod[test$Religion_cod!=99],test_Religion_cod)
CM3_Religion_cod
<- confusionMatrix(pred3_Religion_cod[test$Religion_cod!=99],test_Religion_cod)$table
AC3_Religion_cod
<- as.vector(confusionMatrix(pred3_Religion_cod[test$Religion_cod!=99],test_Religion_cod)$overall[1])
M3[NA_Religion_cod,"Religion_cod"]
<- pred3_Religion_cod[pos]
M3[NA_Religion_cod_impu,"Religion_cod"]
<- impu_Religion_cod3
Matriz confusión
CMT_Religion_cod
<- (CM1_Religion_cod)
for(i in 1:nrow(CMT_Religion_cod))
{
for(j in 1:ncol(CMT_Religion_cod))
{
if((CM1_Religion_cod[i,j]+CM2_Religion_cod[i,j]+CM3_Religion_cod[i,j])%%3 != 0)
{
CMT_Religion_cod[i,j] = as.character(round((CM1_Religion_cod[i,j]+CM2_Religion_cod[i,j]+CM3_Religion_cod[i,j])/3,2))
}else{
CMT_Religion_cod[i,j] =
as.character(as.integer((CM1_Religion_cod[i,j]+CM2_Religion_cod[i,j]+CM3_Religion_cod[i,j])/3))
}
}
}
CMT_Religion_cod =
cbind(c(1:4), CMT_Religion_cod)
kable(CMT_Religion_cod, position = "center", booktabs = TRUE, align = "cccccc", caption = "<left><em>
Matriz de confusión Religión </em></center>", escape = FALSE, col.names = c("Prediction", "1","2","3", "4"), position = "center", row_label_position = "c", font_size = 15)%>%
kableExtra::footnote(symbol
= c("Al tomar la media de los elementos de las matrices de
confusión,
es posible que no se obtenga un
número entero"), threeparttable=T)%>%
kable_classic(full_width = F, html_font = "Times
New Roman")%>%
add_header_above(c(" " = 1, "Reference" = 1, "
" = 3))%>%
column_spec(1:5, width = "1.2cm")
ACT_Religion_cod
<- c(AC1_Religion_cod,AC2_Religion_cod,AC3_Religion_cod)
ACM_Religion_cod
<- mean(c(ACT_Religion_cod))
ACSD_Religion_cod
<- sqrt(var(ACT_Religion_cod)/3)
-
Imputación de la valoración de la Situación Económica
# M = 1
train2_Situ_eco_cod
<- conjunto[conjunto[,"Situ_eco_cod"]!="99",]
impu_Situ_eco_cod
<- conjunto[conjunto[,"Situ_eco_cod"]=="99",]
dim(train2_Situ_eco_cod)[1]
dim(impu_Situ_eco_cod)[1]
table(train2_Situ_eco_cod$Situ_eco_cod)
train2_Situ_eco_cod[,"Situ_eco_cod"]
<- droplevels(train2_Situ_eco_cod[,"Situ_eco_cod"])
table(train2_Situ_eco_cod$Situ_eco_cod)
ctrl
<- trainControl(method = "cv", number = 5)
# RF train with
CV to optimize number of variables
#library(doMC)
#registerDoMC(cores
= 2)
set.seed(0, sample.kind = "Rounding")
rfFit_Situ_eco_cod
<- train(Situ_eco_cod ~ .,
method = "rf",
data = train2_Situ_eco_cod,
preProcess = c("center", "scale"),
tuneGrid =
expand.grid(mtry = c(2:10)),
trControl = ctrl)
rfFit_Situ_eco_cod
varImp(rfFit_Situ_eco_cod)
plot(varImp(rfFit_Situ_eco_cod), top = 10, col = "#74A9CF", main = "M1")
rfFit_Situ_eco_cod$finalModel
pred_Situ_eco_cod
<- predict(rfFit_Situ_eco_cod, test)
impu_Situ_eco_cod1
<- predict(rfFit_Situ_eco_cod, impu_Situ_eco_cod)
table(pred_Situ_eco_cod)
test_Situ_eco_cod
<- test$Situ_eco_cod[test$Situ_eco_cod!=99]
test_Situ_eco_cod
<- droplevels(test_Situ_eco_cod)
confusionMatrix(pred_Situ_eco_cod[test$Situ_eco_cod!=99],test_Situ_eco_cod)
CM1_Situ_eco_cod
<- confusionMatrix(pred_Situ_eco_cod[test$Situ_eco_cod!=99],test_Situ_eco_cod)$table
AC1_Situ_eco_cod
<- as.vector(confusionMatrix(pred_Situ_eco_cod[test$Situ_eco_cod!=99],test_Situ_eco_cod)$overall[1])
NA_Situ_eco_cod
<- as.numeric(rownames(test[test[,"Situ_eco_cod"]=='99',]))
pos =
c()
for(i in 1:nrow(test))
{
if(test[i,"Situ_eco_cod"]=="99")
{
pos=c(pos,i)
}
}
NA_Situ_eco_cod_impu
<- as.numeric(rownames(impu_Situ_eco_cod))
M1[NA_Situ_eco_cod,"Situ_eco_cod"]
<- pred_Situ_eco_cod[pos]
M1[NA_Situ_eco_cod_impu,"Situ_eco_cod"]
<- impu_Situ_eco_cod1
M = 2
set.seed(1, sample.kind = "Rounding")
rfFit2_Situ_eco_cod
<- train(Situ_eco_cod ~ .,
method = "rf",
data = train2_Situ_eco_cod,
preProcess = c("center", "scale"),
tuneGrid =
expand.grid(mtry = c(2:10)),
trControl = ctrl)
rfFit2_Situ_eco_cod
varImp(rfFit2_Situ_eco_cod)
plot(varImp(rfFit2_Situ_eco_cod), top = 10, col = "#0570B0", main = "M2")
rfFit2_Situ_eco_cod$finalModel
pred2_Situ_eco_cod
<- predict(rfFit2_Situ_eco_cod, test)
impu_Situ_eco_cod2
<- predict(rfFit2_Situ_eco_cod, impu_Situ_eco_cod)
table(pred2_Situ_eco_cod)
confusionMatrix(pred2_Situ_eco_cod[test$Situ_eco_cod!=99],test_Situ_eco_cod)
CM2_Situ_eco_cod
<- confusionMatrix(pred2_Situ_eco_cod[test$Situ_eco_cod!=99],test_Situ_eco_cod)$table
AC2_Situ_eco_cod
<- as.vector(confusionMatrix(pred2_Situ_eco_cod[test$Situ_eco_cod!=99],test_Situ_eco_cod)$overall[1])
M2[NA_Situ_eco_cod,"Situ_eco_cod"]
<- pred2_Situ_eco_cod[pos]
M2[NA_Situ_eco_cod_impu,"Situ_eco_cod"]
<- impu_Situ_eco_cod2
M = 3
set.seed(2, sample.kind = "Rounding")
rfFit3_Situ_eco_cod
<- train(Situ_eco_cod ~ .,
method = "rf",
data = train2_Situ_eco_cod,
preProcess = c("center", "scale"),
tuneGrid =
expand.grid(mtry = c(2:10)),
trControl = ctrl)
rfFit3_Situ_eco_cod
varImp(rfFit3_Situ_eco_cod)
plot(varImp(rfFit3_Situ_eco_cod), top = 10, col = "#41AE76", main = "M3")
rfFit3_Situ_eco_cod$finalModel
pred3_Situ_eco_cod
<- predict(rfFit3_Situ_eco_cod, test)
impu_Situ_eco_cod3
<- predict(rfFit3_Situ_eco_cod, impu_Situ_eco_cod)
table(pred3_Situ_eco_cod)
confusionMatrix(pred3_Situ_eco_cod[test$Situ_eco_cod!=99],test_Situ_eco_cod)
CM3_Situ_eco_cod
<- confusionMatrix(pred3_Situ_eco_cod[test$Situ_eco_cod!=99],test_Situ_eco_cod)$table
AC3_Situ_eco_cod
<- as.vector(confusionMatrix(pred3_Situ_eco_cod[test$Situ_eco_cod!=99],test_Situ_eco_cod)$overall[1])
M3[NA_Situ_eco_cod,"Situ_eco_cod"]
<- pred3_Situ_eco_cod[pos]
M3[NA_Situ_eco_cod_impu,"Situ_eco_cod"]
<- impu_Situ_eco_cod3
Matriz Confusión
CMT_Situ_eco_cod
<- (CM1_Situ_eco_cod)
for(i in 1:nrow(CMT_Situ_eco_cod))
{
for(j in 1:ncol(CMT_Situ_eco_cod))
{
if((CM1_Situ_eco_cod[i,j]+CM2_Situ_eco_cod[i,j]+CM3_Situ_eco_cod[i,j])%%3 != 0)
{
CMT_Situ_eco_cod[i,j] =
as.character(round((CM1_Situ_eco_cod[i,j]+CM2_Situ_eco_cod[i,j]+CM3_Situ_eco_cod[i,j])/3,2))
}else{
CMT_Situ_eco_cod[i,j] =
as.character(as.integer((CM1_Situ_eco_cod[i,j]+CM2_Situ_eco_cod[i,j]+CM3_Situ_eco_cod[i,j])/3))
}
}
}
CMT_Situ_eco_cod
= cbind(c(1:5),
CMT_Situ_eco_cod)
kable(CMT_Situ_eco_cod,
position = "center",
booktabs = TRUE, align
= "cccccc", caption
= "<left><em> Matriz de confusión Situación económica
</em></center>", escape
= FALSE, col.names = c("Prediction",
"1","2","3",
"4", "5"),
position = "center",
row_label_position = "c",
font_size = 15)%>%
kableExtra::footnote(symbol
= c("Al tomar la media de los elementos de las matrices de
confusión,
es posible que no se obtenga un
número entero"), threeparttable=T)%>%
kable_classic(full_width = F, html_font = "Times
New Roman")%>%
add_header_above(c(" " = 1, "Reference" = 1, "
" = 4))%>%
column_spec(1:6, width = "1.2cm")
ACT_Situ_eco_cod
<- c(AC1_Situ_eco_cod,AC2_Situ_eco_cod,AC3_Situ_eco_cod)
ACM_Situ_eco_cod
<- mean(c(ACT_Situ_eco_cod))
ACSD_Situ_eco_cod <- sqrt(var(ACT_Situ_eco_cod)/3)
-
Imputación de la Confianza en el presidente actual
# M = 1
train2_Conf_presi_cod
<- conjunto[conjunto[,"Conf_presi_cod"]!="99",]
impu_Conf_presi_cod
<- conjunto[conjunto[,"Conf_presi_cod"]=="99",]
dim(train2_Conf_presi_cod)[1]
dim(impu_Conf_presi_cod)[1]
table(train2_Conf_presi_cod$Conf_presi_cod)
train2_Conf_presi_cod[,"Conf_presi_cod"]
<- droplevels(train2_Conf_presi_cod[,"Conf_presi_cod"])
table(train2_Conf_presi_cod$Conf_presi_cod)
ctrl
<- trainControl(method = "cv", number = 5)
# RF train with
CV to optimize number of variables
#library(doMC)
#registerDoMC(cores
= 2)
set.seed(0, sample.kind = "Rounding")
rfFit_Conf_presi_cod
<- train(Conf_presi_cod ~ .,
method = "rf",
data = train2_Conf_presi_cod,
preProcess = c("center", "scale"),
tuneGrid =
expand.grid(mtry = c(2:10)),
trControl = ctrl)
rfFit_Conf_presi_cod
varImp(rfFit_Conf_presi_cod)
plot(varImp(rfFit_Conf_presi_cod), top = 10, col = "#74A9CF", main = "M1")
rfFit_Conf_presi_cod$finalModel
pred_Conf_presi_cod
<- predict(rfFit_Conf_presi_cod, test)
impu_Conf_presi_cod1
<- predict(rfFit_Conf_presi_cod, impu_Conf_presi_cod)
table(pred_Conf_presi_cod)
test_Conf_presi_cod
<- test$Conf_presi_cod[test$Conf_presi_cod!=99]
test_Conf_presi_cod
<- droplevels(test_Conf_presi_cod)
confusionMatrix(pred_Conf_presi_cod[test$Conf_presi_cod!=99],test_Conf_presi_cod)
CM1_Conf_presi_cod
<- confusionMatrix(pred_Conf_presi_cod[test$Conf_presi_cod!=99],test_Conf_presi_cod)$table
AC1_Conf_presi_cod
<- as.vector(confusionMatrix(pred_Conf_presi_cod[test$Conf_presi_cod!=99],test_Conf_presi_cod)$overall[1])
NA_Conf_presi_cod
<- as.numeric(rownames(test[test[,"Conf_presi_cod"]=='99',]))
pos =
c()
for(i in 1:nrow(test))
{
if(test[i,"Conf_presi_cod"]=="99")
{
pos=c(pos,i)
}
}
NA_Conf_presi_cod_impu
<- as.numeric(rownames(impu_Conf_presi_cod))
M1[NA_Conf_presi_cod,"Conf_presi_cod"]
<- pred_Conf_presi_cod[pos]
M1[NA_Conf_presi_cod_impu,"Conf_presi_cod"]
<- impu_Conf_presi_cod1
M = 2
set.seed(1, sample.kind = "Rounding")
rfFit2_Conf_presi_cod
<- train(Conf_presi_cod ~ .,
method = "rf",
data = train2_Conf_presi_cod,
preProcess = c("center", "scale"),
tuneGrid =
expand.grid(mtry = c(2:10)),
trControl = ctrl)
rfFit2_Conf_presi_cod
varImp(rfFit2_Conf_presi_cod)
plot(varImp(rfFit2_Conf_presi_cod), top = 10, col = "#0570B0", main = "M2")
rfFit2_Conf_presi_cod$finalModel
pred2_Conf_presi_cod
<- predict(rfFit2_Conf_presi_cod, test)
impu_Conf_presi_cod2
<- predict(rfFit2_Conf_presi_cod, impu_Conf_presi_cod)
table(pred2_Conf_presi_cod)
confusionMatrix(pred2_Conf_presi_cod[test$Conf_presi_cod!=99],test_Conf_presi_cod)
CM2_Conf_presi_cod
<- confusionMatrix(pred2_Conf_presi_cod[test$Conf_presi_cod!=99],test_Conf_presi_cod)$table
AC2_Conf_presi_cod
<- as.vector(confusionMatrix(pred2_Conf_presi_cod[test$Conf_presi_cod!=99],test_Conf_presi_cod)$overall[1])
M2[NA_Conf_presi_cod,"Conf_presi_cod"]
<- pred2_Conf_presi_cod[pos]
M2[NA_Conf_presi_cod_impu,"Conf_presi_cod"]
<- impu_Conf_presi_cod2
M = 3
set.seed(2, sample.kind = "Rounding")
rfFit3_Conf_presi_cod
<- train(Conf_presi_cod ~ .,
method = "rf",
data = train2_Conf_presi_cod,
preProcess = c("center", "scale"),
tuneGrid =
expand.grid(mtry = c(2:10)),
trControl = ctrl)
rfFit3_Conf_presi_cod
varImp(rfFit3_Conf_presi_cod)
plot(varImp(rfFit3_Conf_presi_cod), top = 10, col = "#41AE76", main = "M3")
rfFit3_Conf_presi_cod$finalModel
pred3_Conf_presi_cod
<- predict(rfFit3_Conf_presi_cod, test)
impu_Conf_presi_cod3
<- predict(rfFit3_Conf_presi_cod, impu_Conf_presi_cod)
table(pred3_Conf_presi_cod)
confusionMatrix(pred3_Conf_presi_cod[test$Conf_presi_cod!=99],test_Conf_presi_cod)
CM3_Conf_presi_cod
<- confusionMatrix(pred3_Conf_presi_cod[test$Conf_presi_cod!=99],test_Conf_presi_cod)$table
AC3_Conf_presi_cod
<- as.vector(confusionMatrix(pred3_Conf_presi_cod[test$Conf_presi_cod!=99],test_Conf_presi_cod)$overall[1])
M3[NA_Conf_presi_cod,"Conf_presi_cod"]
<- pred3_Conf_presi_cod[pos]
M3[NA_Conf_presi_cod_impu,"Conf_presi_cod"]
<- impu_Conf_presi_cod3
Conf Presi
CMT_Conf_presi_cod
<- (CM1_Conf_presi_cod)
for(i in 1:nrow(CMT_Conf_presi_cod))
{
for(j in 1:ncol(CMT_Conf_presi_cod))
{
if((CM1_Conf_presi_cod[i,j]+CM2_Conf_presi_cod[i,j]+CM3_Conf_presi_cod[i,j])%%3 != 0)
{
CMT_Conf_presi_cod[i,j] =
as.character(round((CM1_Conf_presi_cod[i,j]+CM2_Conf_presi_cod[i,j]+CM3_Conf_presi_cod[i,j])/3,2))
}else{
CMT_Conf_presi_cod[i,j] =
as.character(as.integer((CM1_Conf_presi_cod[i,j]+CM2_Conf_presi_cod[i,j]+CM3_Conf_presi_cod[i,j])/3))
}
}
}
CMT_Conf_presi_cod =
cbind(c(1:4), CMT_Conf_presi_cod)
kable(CMT_Conf_presi_cod, position = "center", booktabs = TRUE, align = "cccccc", caption = "<left><em>
Matriz de confusión Confianza en el Presidente del gobierno
</em></center>", escape = FALSE, col.names = c("Prediction", "1","2","3", "4"), position = "center", row_label_position = "c", font_size = 15)%>%
kableExtra::footnote(symbol
= c("Al tomar la media de los elementos de las matrices de
confusión,
es posible que no se obtenga un
número entero"), threeparttable=T)%>%
kable_classic(full_width = F, html_font = "Times
New Roman")%>%
add_header_above(c(" " = 1, "Reference" = 1, "
" = 3))%>%
column_spec(1:5, width = "1.2cm")
ACT_Conf_presi_cod
<- c(AC1_Conf_presi_cod,AC2_Conf_presi_cod,AC3_Conf_presi_cod)
ACM_Conf_presi_cod
<- mean(c(ACT_Conf_presi_cod))
ACSD_Conf_presi_cod
<- sqrt(var(ACT_Conf_presi_cod)/3)
-
Imputación de la clase social
# M = 1
train2_clase_cod
<- conjunto[conjunto[,"clase_cod"]!="99",]
impu_clase_cod
<- conjunto[conjunto[,"clase_cod"]=="99",]
dim(train2_clase_cod)[1]
dim(impu_clase_cod)[1]
table(train2_clase_cod$clase_cod)
train2_clase_cod[,"clase_cod"]
<- droplevels(train2_clase_cod[,"clase_cod"])
table(train2_clase_cod$clase_cod)
ctrl
<- trainControl(method = "cv", number = 5)
# RF train with
CV to optimize number of variables
#library(doMC)
#registerDoMC(cores
= 2)
set.seed(0, sample.kind = "Rounding")
rfFit_clase_cod
<- train(clase_cod ~ .,
method = "rf",
data = train2_clase_cod,
preProcess = c("center", "scale"),
tuneGrid =
expand.grid(mtry = c(2:10)),
trControl = ctrl)
rfFit_clase_cod
varImp(rfFit_clase_cod)
plot(varImp(rfFit_clase_cod), top = 10, col = "#74A9CF", main = "M1")
rfFit_clase_cod$finalModel
pred_clase_cod
<- predict(rfFit_clase_cod, test)
impu_clase_cod1
<- predict(rfFit_clase_cod, impu_clase_cod)
table(pred_clase_cod)
test_clase_cod
<- test$clase_cod[test$clase_cod!=99]
test_clase_cod
<- droplevels(test_clase_cod)
confusionMatrix(pred_clase_cod[test$clase_cod!=99],test_clase_cod)
CM1_clase_cod
<- confusionMatrix(pred_clase_cod[test$clase_cod!=99],test_clase_cod)$table
AC1_clase_cod
<- as.vector(confusionMatrix(pred_clase_cod[test$clase_cod!=99],test_clase_cod)$overall[1])
NA_clase_cod
<- as.numeric(rownames(test[test[,"clase_cod"]=='99',]))
pos =
c()
for(i in 1:nrow(test))
{
if(test[i,"clase_cod"]=="99")
{
pos=c(pos,i)
}
}
NA_clase_cod_impu
<- as.numeric(rownames(impu_clase_cod))
M1[NA_clase_cod,"clase_cod"]
<- pred_clase_cod[pos]
M1[NA_clase_cod_impu,"clase_cod"]
<- impu_clase_cod1
M = 2
set.seed(1, sample.kind = "Rounding")
rfFit2_clase_cod
<- train(clase_cod ~ .,
method = "rf",
data = train2_clase_cod,
preProcess = c("center", "scale"),
tuneGrid =
expand.grid(mtry = c(2:10)),
trControl = ctrl)
rfFit2_clase_cod
varImp(rfFit2_clase_cod)
plot(varImp(rfFit2_clase_cod), top = 10, col = "#0570B0", main = "M2")
rfFit2_clase_cod$finalModel
pred2_clase_cod
<- predict(rfFit2_clase_cod, test)
impu_clase_cod2
<- predict(rfFit2_clase_cod, impu_clase_cod)
table(pred2_clase_cod)
confusionMatrix(pred2_clase_cod[test$clase_cod!=99],test_clase_cod)
CM2_clase_cod
<- confusionMatrix(pred2_clase_cod[test$clase_cod!=99],test_clase_cod)$table
AC2_clase_cod
<- as.vector(confusionMatrix(pred2_clase_cod[test$clase_cod!=99],test_clase_cod)$overall[1])
M2[NA_clase_cod,"clase_cod"]
<- pred2_clase_cod[pos]
M2[NA_clase_cod_impu,"clase_cod"]
<- impu_clase_cod2
M = 3
set.seed(2, sample.kind = "Rounding")
rfFit3_clase_cod
<- train(clase_cod ~ .,
method = "rf",
data = train2_clase_cod,
preProcess = c("center", "scale"),
tuneGrid =
expand.grid(mtry = c(2:10)),
trControl = ctrl)
rfFit3_clase_cod
varImp(rfFit3_clase_cod)
plot(varImp(rfFit3_clase_cod), top = 10, col = "#41AE76", main = "M3")
rfFit3_clase_cod$finalModel
pred3_clase_cod
<- predict(rfFit3_clase_cod, test)
impu_clase_cod3
<- predict(rfFit3_clase_cod, impu_clase_cod)
table(pred3_clase_cod)
confusionMatrix(pred3_clase_cod[test$clase_cod!=99],test_clase_cod)
CM3_clase_cod
<- confusionMatrix(pred3_clase_cod[test$clase_cod!=99],test_clase_cod)$table
AC3_clase_cod
<- as.vector(confusionMatrix(pred3_clase_cod[test$clase_cod!=99],test_clase_cod)$overall[1])
M3[NA_clase_cod,"clase_cod"]
<- pred3_clase_cod[pos]
M3[NA_clase_cod_impu,"clase_cod"]
<- impu_clase_cod3
CMT_clase_cod
<- (CM1_clase_cod)
for(i in 1:nrow(CMT_clase_cod))
{
for(j in 1:ncol(CMT_clase_cod))
{
if((CM1_clase_cod[i,j]+CM2_clase_cod[i,j]+CM3_clase_cod[i,j])%%3 != 0)
{
CMT_clase_cod[i,j] =
as.character(round((CM1_clase_cod[i,j]+CM2_clase_cod[i,j]+CM3_clase_cod[i,j])/3,2))
}else{
CMT_clase_cod[i,j] =
as.character(as.integer((CM1_clase_cod[i,j]+CM2_clase_cod[i,j]+CM3_clase_cod[i,j])/3))
}
}
}
CMT_clase_cod
= cbind(c(1:5),
CMT_clase_cod)
kable(CMT_clase_cod, position = "center", booktabs = TRUE, align = "cccccc", caption = "<left><em>
Matriz de confusión Clase social </em></center>", escape = FALSE, col.names = c("Prediction", "1","2","3", "4", "5"), position = "center", row_label_position = "c", font_size = 15)%>%
kableExtra::footnote(symbol
= c("Al tomar la media de los elementos de las matrices de
confusión,
es posible que no se obtenga un
número entero"), threeparttable=T)%>%
kable_classic(full_width = F, html_font = "Times
New Roman")%>%
add_header_above(c(" " = 1, "Reference" = 1, "
" = 4))%>%
column_spec(1:6, width = "1.2cm")
ACT_clase_cod
<- c(AC1_clase_cod,AC2_clase_cod,AC3_clase_cod)
ACM_clase_cod
<- mean(c(ACT_clase_cod))
ACSD_clase_cod
<- sqrt(var(ACT_clase_cod)/3)
-
Imputación de la confianza en la oposición
# M = 1
train2_Conf_opo_cod
<- conjunto[conjunto[,"Conf_opo_cod"]!="99",]
impu_Conf_opo_cod
<- conjunto[conjunto[,"Conf_opo_cod"]=="99",]
dim(train2_Conf_opo_cod)[1]
dim(impu_Conf_opo_cod)[1]
table(train2_Conf_opo_cod$Conf_opo_cod)
train2_Conf_opo_cod[,"Conf_opo_cod"]
<- droplevels(train2_Conf_opo_cod[,"Conf_opo_cod"])
table(train2_Conf_opo_cod$Conf_opo_cod)
ctrl
<- trainControl(method = "cv", number = 5)
# RF train with
CV to optimize number of variables
#library(doMC)
#registerDoMC(cores
= 2)
set.seed(0, sample.kind = "Rounding")
rfFit_Conf_opo_cod
<- train(Conf_opo_cod ~ .,
method = "rf",
data = train2_Conf_opo_cod,
preProcess = c("center", "scale"),
tuneGrid =
expand.grid(mtry = c(2:10)),
trControl = ctrl)
rfFit_Conf_opo_cod
varImp(rfFit_Conf_opo_cod)
plot(varImp(rfFit_Conf_opo_cod), top = 10, col = "#74A9CF", main = "M1")
rfFit_Conf_opo_cod$finalModel
pred_Conf_opo_cod
<- predict(rfFit_Conf_opo_cod, test)
impu_Conf_opo_cod1
<- predict(rfFit_Conf_opo_cod, impu_Conf_opo_cod)
table(pred_Conf_opo_cod)
test_Conf_opo_cod
<- test$Conf_opo_cod[test$Conf_opo_cod!=99]
test_Conf_opo_cod
<- droplevels(test_Conf_opo_cod)
confusionMatrix(pred_Conf_opo_cod[test$Conf_opo_cod!=99],test_Conf_opo_cod)
CM1_Conf_opo_cod
<- confusionMatrix(pred_Conf_opo_cod[test$Conf_opo_cod!=99],test_Conf_opo_cod)$table
AC1_Conf_opo_cod
<- as.vector(confusionMatrix(pred_Conf_opo_cod[test$Conf_opo_cod!=99],test_Conf_opo_cod)$overall[1])
NA_Conf_opo_cod
<- as.numeric(rownames(test[test[,"Conf_opo_cod"]=='99',]))
pos =
c()
for(i in 1:nrow(test))
{
if(test[i,"Conf_opo_cod"]=="99")
{
pos=c(pos,i)
}
}
NA_Conf_opo_cod_impu
<- as.numeric(rownames(impu_Conf_opo_cod))
M1[NA_Conf_opo_cod,"Conf_opo_cod"]
<- pred_Conf_opo_cod[pos]
M1[NA_Conf_opo_cod_impu,"Conf_opo_cod"]
<- impu_Conf_opo_cod1
M = 2
set.seed(1, sample.kind = "Rounding")
rfFit2_Conf_opo_cod
<- train(Conf_opo_cod ~ .,
method = "rf",
data = train2_Conf_opo_cod,
preProcess = c("center", "scale"),
tuneGrid =
expand.grid(mtry = c(2:10)),
trControl = ctrl)
rfFit2_Conf_opo_cod
varImp(rfFit2_Conf_opo_cod)
plot(varImp(rfFit2_Conf_opo_cod), top = 10, col = "#0570B0", main = "M2")
rfFit2_Conf_opo_cod$finalModel
pred2_Conf_opo_cod
<- predict(rfFit2_Conf_opo_cod, test)
impu_Conf_opo_cod2
<- predict(rfFit2_Conf_opo_cod, impu_Conf_opo_cod)
table(pred2_Conf_opo_cod)
confusionMatrix(pred2_Conf_opo_cod[test$Conf_opo_cod!=99],test_Conf_opo_cod)
CM2_Conf_opo_cod
<- confusionMatrix(pred2_Conf_opo_cod[test$Conf_opo_cod!=99],test_Conf_opo_cod)$table
AC2_Conf_opo_cod
<- as.vector(confusionMatrix(pred2_Conf_opo_cod[test$Conf_opo_cod!=99],test_Conf_opo_cod)$overall[1])
M2[NA_Conf_opo_cod,"Conf_opo_cod"]
<- pred2_Conf_opo_cod[pos]
M2[NA_Conf_opo_cod_impu,"Conf_opo_cod"]
<- impu_Conf_opo_cod2
M = 3
set.seed(2, sample.kind = "Rounding")
rfFit3_Conf_opo_cod
<- train(Conf_opo_cod ~ .,
method = "rf",
data = train2_Conf_opo_cod,
preProcess = c("center", "scale"),
tuneGrid =
expand.grid(mtry = c(2:10)),
trControl = ctrl)
rfFit3_Conf_opo_cod
varImp(rfFit3_Conf_opo_cod)
plot(varImp(rfFit3_Conf_opo_cod), top = 10, col = "#41AE76", main = "M3")
rfFit3_Conf_opo_cod$finalModel
pred3_Conf_opo_cod
<- predict(rfFit3_Conf_opo_cod, test)
impu_Conf_opo_cod3
<- predict(rfFit3_Conf_opo_cod, impu_Conf_opo_cod)
table(pred3_Conf_opo_cod)
confusionMatrix(pred3_Conf_opo_cod[test$Conf_opo_cod!=99],test_Conf_opo_cod)
CM3_Conf_opo_cod
<- confusionMatrix(pred3_Conf_opo_cod[test$Conf_opo_cod!=99],test_Conf_opo_cod)$table
AC3_Conf_opo_cod
<- as.vector(confusionMatrix(pred3_Conf_opo_cod[test$Conf_opo_cod!=99],test_Conf_opo_cod)$overall[1])
M3[NA_Conf_opo_cod,"Conf_opo_cod"]
<- pred3_Conf_opo_cod[pos]
M3[NA_Conf_opo_cod_impu,"Conf_opo_cod"]
<- impu_Conf_opo_cod3
Matriz de confusión
CMT_Conf_opo_cod
<- (CM1_Conf_opo_cod)
for(i in 1:nrow(CMT_Conf_opo_cod))
{
for(j in 1:ncol(CMT_Conf_opo_cod))
{
if((CM1_Conf_opo_cod[i,j]+CM2_Conf_opo_cod[i,j]+CM3_Conf_opo_cod[i,j])%%3 != 0)
{
CMT_Conf_opo_cod[i,j] =
as.character(round((CM1_Conf_opo_cod[i,j]+CM2_Conf_opo_cod[i,j]+CM3_Conf_opo_cod[i,j])/3,2))
}else{
CMT_Conf_opo_cod[i,j] =
as.character(as.integer((CM1_Conf_opo_cod[i,j]+CM2_Conf_opo_cod[i,j]+CM3_Conf_opo_cod[i,j])/3))
}
}
}
CMT_Conf_opo_cod =
cbind(c(1:4), CMT_Conf_opo_cod)
kable(CMT_Conf_opo_cod,
position = "center",
booktabs = TRUE, align
= "cccccc", caption
= "<left><em> Matriz de confusión Confianza en el
presidente de la oposición (Pablo Casado) </em></center>",
escape = FALSE, col.names
= c("Prediction", "1","2","3",
"4"), position
= "center", row_label_position
= "c", font_size
= 15)%>%
kableExtra::footnote(symbol
= c("Al tomar la media de los elementos de las matrices de
confusión,
es posible que no se obtenga un
número entero"), threeparttable=T)%>%
kable_classic(full_width = F, html_font = "Times
New Roman")%>%
add_header_above(c(" " = 1, "Reference" = 1, "
" = 3))%>%
column_spec(1:5, width = "1.2cm")
ACT_Conf_opo_cod
<- c(AC1_Conf_opo_cod,AC2_Conf_opo_cod,AC3_Conf_opo_cod)
ACM_Conf_opo_cod
<- mean(c(ACT_Conf_opo_cod))
ACSD_Conf_opo_cod
<- sqrt(var(ACT_Conf_opo_cod)/3)
- Imputación de la Valoración de Pedro Sánchez
# M = 1
train2_Valoracion_ps_cod
<- conjunto[conjunto[,"Valoracion_ps_cod"]!="99",]
impu_Valoracion_ps_cod
<- conjunto[conjunto[,"Valoracion_ps_cod"]=="99",]
dim(train2_Valoracion_ps_cod)[1]
dim(impu_Valoracion_ps_cod)[1]
table(train2_Valoracion_ps_cod$Valoracion_ps_cod)
train2_Valoracion_ps_cod[,"Valoracion_ps_cod"]
<- droplevels(train2_Valoracion_ps_cod[,"Valoracion_ps_cod"])
table(train2_Valoracion_ps_cod$Valoracion_ps_cod)
ctrl
<- trainControl(method = "cv", number = 5)
# RF train with
CV to optimize number of variables
#library(doMC)
#registerDoMC(cores
= 2)
set.seed(0, sample.kind = "Rounding")
rfFit_Valoracion_ps_cod
<- train(Valoracion_ps_cod ~ .,
method = "rf",
data = train2_Valoracion_ps_cod,
preProcess = c("center", "scale"),
tuneGrid =
expand.grid(mtry = c(2:10)),
trControl
= ctrl)
rfFit_Valoracion_ps_cod
varImp(rfFit_Valoracion_ps_cod)
plot(varImp(rfFit_Valoracion_ps_cod), top = 10, col = "#74A9CF", main = "M1")
rfFit_Valoracion_ps_cod$finalModel
pred_Valoracion_ps_cod
<- predict(rfFit_Valoracion_ps_cod, test)
impu_Valoracion_ps_cod1
<- predict(rfFit_Valoracion_ps_cod, impu_Valoracion_ps_cod)
table(pred_Valoracion_ps_cod)
test_Valoracion_ps_cod
<- test$Valoracion_ps_cod[test$Valoracion_ps_cod!=99]
test_Valoracion_ps_cod
<- droplevels(test_Valoracion_ps_cod)
confusionMatrix(pred_Valoracion_ps_cod[test$Valoracion_ps_cod!=99],test_Valoracion_ps_cod)
CM1_Valoracion_ps_cod
<- confusionMatrix(pred_Valoracion_ps_cod[test$Valoracion_ps_cod!=99],test_Valoracion_ps_cod)$table
AC1_Valoracion_ps_cod
<- as.vector(confusionMatrix(pred_Valoracion_ps_cod[test$Valoracion_ps_cod!=99],test_Valoracion_ps_cod)$overall[1])
NA_Valoracion_ps_cod
<- as.numeric(rownames(test[test[,"Valoracion_ps_cod"]=='99',]))
pos =
c()
for(i in 1:nrow(test))
{
if(test[i,"Valoracion_ps_cod"]=="99")
{
pos=c(pos,i)
}
}
NA_Valoracion_ps_cod_impu
<- as.numeric(rownames(impu_Valoracion_ps_cod))
M1[NA_Valoracion_ps_cod,"Valoracion_ps_cod"]
<- pred_Valoracion_ps_cod[pos]
M1[NA_Valoracion_ps_cod_impu,"Valoracion_ps_cod"]
<- impu_Valoracion_ps_cod1
M = 2
set.seed(1, sample.kind = "Rounding")
rfFit2_Valoracion_ps_cod
<- train(Valoracion_ps_cod ~ .,
method = "rf",
data = train2_Valoracion_ps_cod,
preProcess = c("center", "scale"),
tuneGrid =
expand.grid(mtry = c(2:10)),
trControl
= ctrl)
rfFit2_Valoracion_ps_cod
varImp(rfFit2_Valoracion_ps_cod)
plot(varImp(rfFit2_Valoracion_ps_cod), top = 10, col = "#0570B0", main = "M2")
rfFit2_Valoracion_ps_cod$finalModel
pred2_Valoracion_ps_cod
<- predict(rfFit2_Valoracion_ps_cod, test)
impu_Valoracion_ps_cod2
<- predict(rfFit2_Valoracion_ps_cod, impu_Valoracion_ps_cod)
table(pred2_Valoracion_ps_cod)
confusionMatrix(pred2_Valoracion_ps_cod[test$Valoracion_ps_cod!=99],test_Valoracion_ps_cod)
CM2_Valoracion_ps_cod
<- confusionMatrix(pred2_Valoracion_ps_cod[test$Valoracion_ps_cod!=99],test_Valoracion_ps_cod)$table
AC2_Valoracion_ps_cod
<- as.vector(confusionMatrix(pred2_Valoracion_ps_cod[test$Valoracion_ps_cod!=99],test_Valoracion_ps_cod)$overall[1])
M2[NA_Valoracion_ps_cod,"Valoracion_ps_cod"]
<- pred2_Valoracion_ps_cod[pos]
M2[NA_Valoracion_ps_cod_impu,"Valoracion_ps_cod"]
<- impu_Valoracion_ps_cod2
M = 3
set.seed(2, sample.kind = "Rounding")
rfFit3_Valoracion_ps_cod
<- train(Valoracion_ps_cod ~ .,
method = "rf",
data = train2_Valoracion_ps_cod,
preProcess = c("center", "scale"),
tuneGrid =
expand.grid(mtry = c(2:10)),
trControl
= ctrl)
rfFit3_Valoracion_ps_cod
varImp(rfFit3_Valoracion_ps_cod)
plot(varImp(rfFit3_Valoracion_ps_cod), top = 10, col = "#41AE76", main = "M3")
rfFit3_Valoracion_ps_cod$finalModel
pred3_Valoracion_ps_cod
<- predict(rfFit3_Valoracion_ps_cod, test)
impu_Valoracion_ps_cod3
<- predict(rfFit3_Valoracion_ps_cod, impu_Valoracion_ps_cod)
table(pred3_Valoracion_ps_cod)
confusionMatrix(pred3_Valoracion_ps_cod[test$Valoracion_ps_cod!=99],test_Valoracion_ps_cod)
CM3_Valoracion_ps_cod
<- confusionMatrix(pred3_Valoracion_ps_cod[test$Valoracion_ps_cod!=99],test_Valoracion_ps_cod)$table
AC3_Valoracion_ps_cod
<- as.vector(confusionMatrix(pred3_Valoracion_ps_cod[test$Valoracion_ps_cod!=99],test_Valoracion_ps_cod)$overall[1])
M3[NA_Valoracion_ps_cod,"Valoracion_ps_cod"]
<- pred3_Valoracion_ps_cod[pos]
M3[NA_Valoracion_ps_cod_impu,"Valoracion_ps_cod"]
<- impu_Valoracion_ps_cod3
Matriz confusión
CMT_Valoracion_ps_cod
<- (CM1_Valoracion_ps_cod)
for(i in 1:nrow(CMT_Valoracion_ps_cod))
{
for(j in 1:ncol(CMT_Valoracion_ps_cod))
{
if((CM1_Valoracion_ps_cod[i,j]+CM2_Valoracion_ps_cod[i,j]+CM3_Valoracion_ps_cod[i,j])%%3 != 0)
{
CMT_Valoracion_ps_cod[i,j] =
as.character(round((CM1_Valoracion_ps_cod[i,j]+CM2_Valoracion_ps_cod[i,j]+CM3_Valoracion_ps_cod[i,j])/3,2))
}else{
CMT_Valoracion_ps_cod[i,j]
= as.character(as.integer((CM1_Valoracion_ps_cod[i,j]+CM2_Valoracion_ps_cod[i,j]+CM3_Valoracion_ps_cod[i,j])/3))
}
}
}
CMT_Valoracion_ps_cod
= cbind(c(1:6),
CMT_Valoracion_ps_cod)
kable(CMT_Valoracion_ps_cod,
position = "center",
booktabs = TRUE, align
= "cccccc", caption
= "<left><em> Matriz de confusión Valoración Pedro
Sánchez </em></center>", escape
= FALSE, col.names = c("Prediction",
"1","2","3",
"4", "5",
"6"), position
= "center", row_label_position
= "c", font_size
= 15)%>%
kableExtra::footnote(symbol
= c("Al tomar la media de los elementos de las matrices de
confusión,
es posible que no se obtenga un
número entero"), threeparttable=T)%>%
kable_classic(full_width = F, html_font = "Times
New Roman")%>%
add_header_above(c(" " = 1, "Reference" = 1, "
" = 5))%>%
column_spec(1:7,
width = "1.2cm")
ACT_Valoracion_ps_cod
<- c(AC1_Valoracion_ps_cod,AC2_Valoracion_ps_cod,AC3_Valoracion_ps_cod)
ACM_Valoracion_ps_cod
<- mean(c(ACT_Valoracion_ps_cod))
ACSD_Valoracion_ps_cod
<- sqrt(var(ACT_Valoracion_ps_cod)/3)
-
Imputación de la valoración de Pablo Iglesias
# M = 1
train2_Valoracion_pi_cod
<- conjunto[conjunto[,"Valoracion_pi_cod"]!="99",]
impu_Valoracion_pi_cod
<- conjunto[conjunto[,"Valoracion_pi_cod"]=="99",]
dim(train2_Valoracion_pi_cod)[1]
dim(impu_Valoracion_pi_cod)[1]
table(train2_Valoracion_pi_cod$Valoracion_pi_cod)
train2_Valoracion_pi_cod[,"Valoracion_pi_cod"]
<- droplevels(train2_Valoracion_pi_cod[,"Valoracion_pi_cod"])
table(train2_Valoracion_pi_cod$Valoracion_pi_cod)
ctrl
<- trainControl(method = "cv", number = 5)
# RF train with
CV to optimize number of variables
#library(doMC)
#registerDoMC(cores
= 2)
set.seed(0, sample.kind = "Rounding")
rfFit_Valoracion_pi_cod
<- train(Valoracion_pi_cod ~ .,
method = "rf",
data = train2_Valoracion_pi_cod,
preProcess = c("center", "scale"),
tuneGrid =
expand.grid(mtry = c(2:10)),
trControl
= ctrl)
rfFit_Valoracion_pi_cod
varImp(rfFit_Valoracion_pi_cod)
plot(varImp(rfFit_Valoracion_pi_cod), top = 10, col = "#74A9CF", main = "M1")
rfFit_Valoracion_pi_cod$finalModel
pred_Valoracion_pi_cod
<- predict(rfFit_Valoracion_pi_cod, test)
impu_Valoracion_pi_cod1
<- predict(rfFit_Valoracion_pi_cod, impu_Valoracion_pi_cod)
table(pred_Valoracion_pi_cod)
test_Valoracion_pi_cod
<- test$Valoracion_pi_cod[test$Valoracion_pi_cod!=99]
test_Valoracion_pi_cod
<- droplevels(test_Valoracion_pi_cod)
confusionMatrix(pred_Valoracion_pi_cod[test$Valoracion_pi_cod!=99],test_Valoracion_pi_cod)
CM1_Valoracion_pi_cod
<- confusionMatrix(pred_Valoracion_pi_cod[test$Valoracion_pi_cod!=99],test_Valoracion_pi_cod)$table
AC1_Valoracion_pi_cod
<- as.vector(confusionMatrix(pred_Valoracion_pi_cod[test$Valoracion_pi_cod!=99],test_Valoracion_pi_cod)$overall[1])
NA_Valoracion_pi_cod
<- as.numeric(rownames(test[test[,"Valoracion_pi_cod"]=='99',]))
pos =
c()
for(i in 1:nrow(test))
{
if(test[i,"Valoracion_pi_cod"]=="99")
{
pos=c(pos,i)
}
}
NA_Valoracion_pi_cod_impu
<- as.numeric(rownames(impu_Valoracion_pi_cod))
M1[NA_Valoracion_pi_cod,"Valoracion_pi_cod"]
<- pred_Valoracion_pi_cod[pos]
M1[NA_Valoracion_pi_cod_impu,"Valoracion_pi_cod"]
<- impu_Valoracion_pi_cod1
M = 2
set.seed(1, sample.kind = "Rounding")
rfFit2_Valoracion_pi_cod
<- train(Valoracion_pi_cod ~ .,
method = "rf",
data = train2_Valoracion_pi_cod,
preProcess = c("center", "scale"),
tuneGrid =
expand.grid(mtry = c(2:10)),
trControl
= ctrl)
rfFit2_Valoracion_pi_cod
varImp(rfFit2_Valoracion_pi_cod)
plot(varImp(rfFit2_Valoracion_pi_cod), top = 10, col = "#0570B0", main = "M2")
rfFit2_Valoracion_pi_cod$finalModel
pred2_Valoracion_pi_cod
<- predict(rfFit2_Valoracion_pi_cod, test)
impu_Valoracion_pi_cod2
<- predict(rfFit2_Valoracion_pi_cod, impu_Valoracion_pi_cod)
table(pred2_Valoracion_pi_cod)
confusionMatrix(pred2_Valoracion_pi_cod[test$Valoracion_pi_cod!=99],test_Valoracion_pi_cod)
CM2_Valoracion_pi_cod
<- confusionMatrix(pred2_Valoracion_pi_cod[test$Valoracion_pi_cod!=99],test_Valoracion_pi_cod)$table
AC2_Valoracion_pi_cod
<- as.vector(confusionMatrix(pred2_Valoracion_pi_cod[test$Valoracion_pi_cod!=99],test_Valoracion_pi_cod)$overall[1])
M2[NA_Valoracion_pi_cod,"Valoracion_pi_cod"]
<- pred2_Valoracion_pi_cod[pos]
M2[NA_Valoracion_pi_cod_impu,"Valoracion_pi_cod"]
<- impu_Valoracion_pi_cod2
M = 3
set.seed(2, sample.kind = "Rounding")
rfFit3_Valoracion_pi_cod
<- train(Valoracion_pi_cod ~ .,
method = "rf",
data = train2_Valoracion_pi_cod,
preProcess = c("center", "scale"),
tuneGrid =
expand.grid(mtry = c(2:10)),
trControl
= ctrl)
rfFit3_Valoracion_pi_cod
varImp(rfFit3_Valoracion_pi_cod)
plot(varImp(rfFit3_Valoracion_pi_cod), top = 10, col = "#41AE76", main = "M3")
rfFit3_Valoracion_pi_cod$finalModel
pred3_Valoracion_pi_cod
<- predict(rfFit3_Valoracion_pi_cod, test)
impu_Valoracion_pi_cod3
<- predict(rfFit3_Valoracion_pi_cod, impu_Valoracion_pi_cod)
table(pred3_Valoracion_pi_cod)
confusionMatrix(pred3_Valoracion_pi_cod[test$Valoracion_pi_cod!=99],test_Valoracion_pi_cod)
CM3_Valoracion_pi_cod
<- confusionMatrix(pred3_Valoracion_pi_cod[test$Valoracion_pi_cod!=99],test_Valoracion_pi_cod)$table
AC3_Valoracion_pi_cod
<- as.vector(confusionMatrix(pred3_Valoracion_pi_cod[test$Valoracion_pi_cod!=99],test_Valoracion_pi_cod)$overall[1])
M3[NA_Valoracion_pi_cod,"Valoracion_pi_cod"]
<- pred3_Valoracion_pi_cod[pos]
M3[NA_Valoracion_pi_cod_impu,"Valoracion_pi_cod"]
<- impu_Valoracion_pi_cod3
CMT_Valoracion_pi_cod
<- (CM1_Valoracion_pi_cod)
for(i in 1:nrow(CMT_Valoracion_pi_cod))
{
for(j in 1:ncol(CMT_Valoracion_pi_cod))
{
if((CM1_Valoracion_pi_cod[i,j]+CM2_Valoracion_pi_cod[i,j]+CM3_Valoracion_pi_cod[i,j])%%3 != 0)
{
CMT_Valoracion_pi_cod[i,j] =
as.character(round((CM1_Valoracion_pi_cod[i,j]+CM2_Valoracion_pi_cod[i,j]+CM3_Valoracion_pi_cod[i,j])/3,2))
}else{
CMT_Valoracion_pi_cod[i,j]
= as.character(as.integer((CM1_Valoracion_pi_cod[i,j]+CM2_Valoracion_pi_cod[i,j]+CM3_Valoracion_pi_cod[i,j])/3))
}
}
}
CMT_Valoracion_pi_cod
= cbind(c(1:6),
CMT_Valoracion_pi_cod)
kable(CMT_Valoracion_pi_cod,
position = "center",
booktabs = TRUE, align
= "cccccc", caption
= "<left><em> Matriz de confusión Valoración Pablo
Iglesias </em></center>", escape
= FALSE, col.names = c("Prediction",
"1","2","3",
"4", "5",
"6"), position
= "center", row_label_position
= "c", font_size
= 15)%>%
kableExtra::footnote(symbol
= c("Al tomar la media de los elementos de las matrices de
confusión,
es posible que no se obtenga un
número entero"), threeparttable=T)%>%
kable_classic(full_width = F, html_font = "Times
New Roman")%>%
add_header_above(c(" " = 1, "Reference" = 1, "
" = 5))%>%
column_spec(1:7,
width = "1.2cm")
ACT_Valoracion_pi_cod
<- c(AC1_Valoracion_pi_cod,AC2_Valoracion_pi_cod,AC3_Valoracion_pi_cod)
ACM_Valoracion_pi_cod
<- mean(c(ACT_Valoracion_pi_cod))
ACSD_Valoracion_pi_cod
<- sqrt(var(ACT_Valoracion_pi_cod)/3)
-
Imputación de la Simpatía partidista
# M = 1
train2_Simpatia_cod
<- conjunto[conjunto[,"Simpatia_cod"]!="99",]
impu_Simpatia_cod
<- conjunto[conjunto[,"Simpatia_cod"]=="99",]
dim(train2_Simpatia_cod)[1]
dim(impu_Simpatia_cod)[1]
table(train2_Simpatia_cod$Simpatia_cod)
train2_Simpatia_cod[,"Simpatia_cod"]
<- droplevels(train2_Simpatia_cod[,"Simpatia_cod"])
table(train2_Simpatia_cod$Simpatia_cod)
ctrl
<- trainControl(method = "cv", number = 5)
# RF train with
CV to optimize number of variables
#library(doMC)
#registerDoMC(cores
= 2)
set.seed(0, sample.kind = "Rounding")
rfFit_Simpatia_cod
<- train(Simpatia_cod ~ .,
method = "rf",
data = train2_Simpatia_cod,
preProcess = c("center", "scale"),
tuneGrid =
expand.grid(mtry = c(2:10)),
trControl = ctrl)
rfFit_Simpatia_cod
varImp(rfFit_Simpatia_cod)
plot(varImp(rfFit_Simpatia_cod), top = 10, col = "#74A9CF", main = "M1")
rfFit_Simpatia_cod$finalModel
pred_Simpatia_cod
<- predict(rfFit_Simpatia_cod, test)
impu_Simpatia_cod1
<- predict(rfFit_Simpatia_cod, impu_Simpatia_cod)
table(pred_Simpatia_cod)
test_Simpatia_cod
<- test$Simpatia_cod[test$Simpatia_cod!=99]
test_Simpatia_cod
<- droplevels(test_Simpatia_cod)
confusionMatrix(pred_Simpatia_cod[test$Simpatia_cod!=99],test_Simpatia_cod)
CM1_Simpatia_cod
<- confusionMatrix(pred_Simpatia_cod[test$Simpatia_cod!=99],test_Simpatia_cod)$table
AC1_Simpatia_cod
<- as.vector(confusionMatrix(pred_Simpatia_cod[test$Simpatia_cod!=99],test_Simpatia_cod)$overall[1])
NA_Simpatia_cod
<- as.numeric(rownames(test[test[,"Simpatia_cod"]=='99',]))
pos =
c()
for(i in 1:nrow(test))
{
if(test[i,"Simpatia_cod"]=="99")
{
pos=c(pos,i)
}
}
NA_Simpatia_cod_impu
<- as.numeric(rownames(impu_Simpatia_cod))
M1[NA_Simpatia_cod,"Simpatia_cod"]
<- pred_Simpatia_cod[pos]
M1[NA_Simpatia_cod_impu,"Simpatia_cod"]
<- impu_Simpatia_cod1
M = 2
set.seed(1, sample.kind = "Rounding")
rfFit2_Simpatia_cod
<- train(Simpatia_cod ~ .,
method = "rf",
data = train2_Simpatia_cod,
preProcess = c("center", "scale"),
tuneGrid =
expand.grid(mtry = c(2:10)),
trControl = ctrl)
rfFit2_Simpatia_cod
varImp(rfFit2_Simpatia_cod)
plot(varImp(rfFit2_Simpatia_cod), top = 10, col = "#0570B0", main = "M2")
rfFit2_Simpatia_cod$finalModel
pred2_Simpatia_cod
<- predict(rfFit2_Simpatia_cod, test)
impu_Simpatia_cod2
<- predict(rfFit2_Simpatia_cod, impu_Simpatia_cod)
table(pred2_Simpatia_cod)
confusionMatrix(pred2_Simpatia_cod[test$Simpatia_cod!=99],test_Simpatia_cod)
CM2_Simpatia_cod
<- confusionMatrix(pred2_Simpatia_cod[test$Simpatia_cod!=99],test_Simpatia_cod)$table
AC2_Simpatia_cod
<- as.vector(confusionMatrix(pred2_Simpatia_cod[test$Simpatia_cod!=99],test_Simpatia_cod)$overall[1])
M2[NA_Simpatia_cod,"Simpatia_cod"]
<- pred2_Simpatia_cod[pos]
M2[NA_Simpatia_cod_impu,"Simpatia_cod"]
<- impu_Simpatia_cod2
M = 3
set.seed(2, sample.kind = "Rounding")
rfFit3_Simpatia_cod
<- train(Simpatia_cod ~ .,
method = "rf",
data = train2_Simpatia_cod,
preProcess = c("center", "scale"),
tuneGrid =
expand.grid(mtry = c(2:10)),
trControl = ctrl)
rfFit3_Simpatia_cod
varImp(rfFit3_Simpatia_cod)
plot(varImp(rfFit3_Simpatia_cod), top = 10, col = "#41AE76", main = "M3")
rfFit3_Simpatia_cod$finalModel
pred3_Simpatia_cod
<- predict(rfFit3_Simpatia_cod, test)
impu_Simpatia_cod3
<- predict(rfFit3_Simpatia_cod, impu_Simpatia_cod)
table(pred3_Simpatia_cod)
confusionMatrix(pred3_Simpatia_cod[test$Simpatia_cod!=99],test_Simpatia_cod)
CM3_Simpatia_cod
<- confusionMatrix(pred3_Simpatia_cod[test$Simpatia_cod!=99],test_Simpatia_cod)$table
AC3_Simpatia_cod
<- as.vector(confusionMatrix(pred3_Simpatia_cod[test$Simpatia_cod!=99],test_Simpatia_cod)$overall[1])
M3[NA_Simpatia_cod,"Simpatia_cod"]
<- pred3_Simpatia_cod[pos]
M3[NA_Simpatia_cod_impu,"Simpatia_cod"]
<- impu_Simpatia_cod3
Matriz confusión
CMT_Simpatia_cod
<- (CM1_Simpatia_cod)
for(i in 1:nrow(CMT_Simpatia_cod))
{
for(j in 1:ncol(CMT_Simpatia_cod))
{
if((CM1_Simpatia_cod[i,j]+CM2_Simpatia_cod[i,j]+CM3_Simpatia_cod[i,j])%%3 != 0)
{
CMT_Simpatia_cod[i,j] =
as.character(round((CM1_Simpatia_cod[i,j]+CM2_Simpatia_cod[i,j]+CM3_Simpatia_cod[i,j])/3,2))
}else{
CMT_Simpatia_cod[i,j] =
as.character(as.integer((CM1_Simpatia_cod[i,j]+CM2_Simpatia_cod[i,j]+CM3_Simpatia_cod[i,j])/3))
}
}
}
CMT_Simpatia_cod
= cbind(c(1:10),
CMT_Simpatia_cod)
CM1_Simpatia_cod
= cbind(c(1:10),
CM1_Simpatia_cod)
CM2_Simpatia_cod
= cbind(c(1:10),
CM2_Simpatia_cod)
CM3_Simpatia_cod
= cbind(c(1:10),
CM3_Simpatia_cod)
kable(CMT_Simpatia_cod,
position = "center",
booktabs = TRUE, align
= "cccccc", caption
= "<left><em> Matriz de confusión Simpatía partidista
</em></center>", escape
= FALSE, col.names = c("Prediction",
"1","2","3",
"4", "5",
"6", "7",
"8", "9",
"10"), table.attr
= "style='width:30%;'")%>%
kable_classic(full_width = F, html_font = "Times
New Roman")%>%
kableExtra::footnote(symbol
= c("Al tomar la media de los elementos de las matrices de confusión,
es posible que no se obtenga un número entero"), threeparttable=T)%>%
add_header_above(c("
" = 1, "Reference" = 1, "
" = 9))%>%
column_spec(1:11, width = "1.2cm")
kable(CM1_Simpatia_cod, position = "center", booktabs = TRUE, align = "cccccc", caption = "<left><em>
Matriz de confusión Simpatía partidista 1ª imputación</em></center>", escape = FALSE, col.names = c("Prediction", "1","2","3", "4", "5", "6", "7", "8", "9", "10"), position = "center")%>%
kable_classic(full_width = F, html_font = "Times
New Roman")%>%
add_header_above(c(" " = 1, "Reference" = 1, "
" = 9))%>%
column_spec(1:11, width = "1.2cm")
kable(CM2_Simpatia_cod, position = "center", booktabs = TRUE, align = "cccccc", caption = "<left><em>
Matriz de confusión Simpatía partidista 2ª imputación
</em></center>", escape = FALSE, col.names = c("Prediction", "1","2","3", "4", "5", "6", "7", "8", "9", "10"), position = "center")%>%
kable_classic(full_width = F, html_font = "Times
New Roman")%>%
add_header_above(c(" " = 1, "Reference" = 1, "
" = 9))%>%
column_spec(1:11, width = "1.2cm")
kable(CM3_Simpatia_cod, position = "center", booktabs = TRUE, align = "cccccc", caption = "<leftr><em>
Matriz de confusión Simpatía partidista 3ª imputación
</em></center>", escape = FALSE, col.names = c("Prediction", "1","2","3", "4", "5", "6", "7", "8", "9", "10"), position = "center")%>%
kable_classic(full_width = F, html_font = "Times
New Roman")%>%
add_header_above(c(" " = 1, "Reference" = 1, "
" = 9))%>%
column_spec(1:11, width = "1.2cm")
ACT_Simpatia_cod
<- c(AC1_Simpatia_cod,AC2_Simpatia_cod,AC3_Simpatia_cod)
ACM_Simpatia_cod
<- mean(c(ACT_Simpatia_cod))
ACSD_Simpatia_cod
<- sqrt(var(ACT_Simpatia_cod)/3)
-
Imputación de la valoración de Pablo Casado
# M = 1
train2_Valoracion_pc_cod
<- conjunto[conjunto[,"Valoracion_pc_cod"]!="99",]
impu_Valoracion_pc_cod
<- conjunto[conjunto[,"Valoracion_pc_cod"]=="99",]
dim(train2_Valoracion_pc_cod)[1]
dim(impu_Valoracion_pc_cod)[1]
table(train2_Valoracion_pc_cod$Valoracion_pc_cod)
train2_Valoracion_pc_cod[,"Valoracion_pc_cod"]
<- droplevels(train2_Valoracion_pc_cod[,"Valoracion_pc_cod"])
table(train2_Valoracion_pc_cod$Valoracion_pc_cod)
ctrl
<- trainControl(method = "cv", number = 5)
# RF train with
CV to optimize number of variables
#library(doMC)
#registerDoMC(cores
= 2)
set.seed(0, sample.kind = "Rounding")
rfFit_Valoracion_pc_cod
<- train(Valoracion_pc_cod ~ .,
method = "rf",
data = train2_Valoracion_pc_cod,
preProcess = c("center", "scale"),
tuneGrid =
expand.grid(mtry = c(2:10)),
trControl
= ctrl)
rfFit_Valoracion_pc_cod
varImp(rfFit_Valoracion_pc_cod)
plot(varImp(rfFit_Valoracion_pc_cod), top = 10, col = "#74A9CF", main = "M1")
rfFit_Valoracion_pc_cod$finalModel
pred_Valoracion_pc_cod
<- predict(rfFit_Valoracion_pc_cod, test)
impu_Valoracion_pc_cod1
<- predict(rfFit_Valoracion_pc_cod, impu_Valoracion_pc_cod)
table(pred_Valoracion_pc_cod)
test_Valoracion_pc_cod
<- test$Valoracion_pc_cod[test$Valoracion_pc_cod!=99]
test_Valoracion_pc_cod
<- droplevels(test_Valoracion_pc_cod)
confusionMatrix(pred_Valoracion_pc_cod[test$Valoracion_pc_cod!=99],test_Valoracion_pc_cod)
CM1_Valoracion_pc_cod
<- confusionMatrix(pred_Valoracion_pc_cod[test$Valoracion_pc_cod!=99],test_Valoracion_pc_cod)$table
AC1_Valoracion_pc_cod<-
as.vector(confusionMatrix(pred_Valoracion_pc_cod[test$Valoracion_pc_cod!=99],test_Valoracion_pc_cod)$overall[1])
NA_Valoracion_pc_cod
<- as.numeric(rownames(test[test[,"Valoracion_pc_cod"]=='99',]))
pos =
c()
for(i in 1:nrow(test))
{
if(test[i,"Valoracion_pc_cod"]=="99")
{
pos=c(pos,i)
}
}
NA_Valoracion_pc_cod_impu
<- as.numeric(rownames(impu_Valoracion_pc_cod))
M1[NA_Valoracion_pc_cod,"Valoracion_pc_cod"]
<- pred_Valoracion_pc_cod[pos]
M1[NA_Valoracion_pc_cod_impu,"Valoracion_pc_cod"]
<- impu_Valoracion_pc_cod1
M = 2
set.seed(1, sample.kind = "Rounding")
rfFit2_Valoracion_pc_cod
<- train(Valoracion_pc_cod ~ .,
method = "rf",
data = train2_Valoracion_pc_cod,
preProcess = c("center", "scale"),
tuneGrid =
expand.grid(mtry = c(2:10)),
trControl
= ctrl)
rfFit2_Valoracion_pc_cod
varImp(rfFit2_Valoracion_pc_cod)
plot(varImp(rfFit2_Valoracion_pc_cod), top = 10, col = "#0570B0", main = "M2")
rfFit2_Valoracion_pc_cod$finalModel
pred2_Valoracion_pc_cod
<- predict(rfFit2_Valoracion_pc_cod, test)
impu_Valoracion_pc_cod2
<- predict(rfFit2_Valoracion_pc_cod, impu_Valoracion_pc_cod)
table(pred2_Valoracion_pc_cod)
confusionMatrix(pred2_Valoracion_pc_cod[test$Valoracion_pc_cod!=99],test_Valoracion_pc_cod)
CM2_Valoracion_pc_cod
<- confusionMatrix(pred2_Valoracion_pc_cod[test$Valoracion_pc_cod!=99],test_Valoracion_pc_cod)$table
AC2_Valoracion_pc_cod<-
as.vector(confusionMatrix(pred2_Valoracion_pc_cod[test$Valoracion_pc_cod!=99],test_Valoracion_pc_cod)$overall[1])
M2[NA_Valoracion_pc_cod,"Valoracion_pc_cod"]
<- pred2_Valoracion_pc_cod[pos]
M2[NA_Valoracion_pc_cod_impu,"Valoracion_pc_cod"]
<- impu_Valoracion_pc_cod2
M = 3
set.seed(2, sample.kind = "Rounding")
rfFit3_Valoracion_pc_cod
<- train(Valoracion_pc_cod ~ .,
method = "rf",
data = train2_Valoracion_pc_cod,
preProcess = c("center", "scale"),
tuneGrid =
expand.grid(mtry = c(2:10)),
trControl
= ctrl)
rfFit3_Valoracion_pc_cod
varImp(rfFit3_Valoracion_pc_cod)
plot(varImp(rfFit3_Valoracion_pc_cod), top = 10, col = "#41AE76", main = "M3")
rfFit3_Valoracion_pc_cod$finalModel
pred3_Valoracion_pc_cod
<- predict(rfFit3_Valoracion_pc_cod, test)
impu_Valoracion_pc_cod3
<- predict(rfFit3_Valoracion_pc_cod, impu_Valoracion_pc_cod)
table(pred3_Valoracion_pc_cod)
confusionMatrix(pred3_Valoracion_pc_cod[test$Valoracion_pc_cod!=99],test_Valoracion_pc_cod)
CM3_Valoracion_pc_cod
<- confusionMatrix(pred3_Valoracion_pc_cod[test$Valoracion_pc_cod!=99],test_Valoracion_pc_cod)$table
AC3_Valoracion_pc_cod<-
as.vector(confusionMatrix(pred3_Valoracion_pc_cod[test$Valoracion_pc_cod!=99],test_Valoracion_pc_cod)$overall[1])
M3[NA_Valoracion_pc_cod,"Valoracion_pc_cod"]
<- pred3_Valoracion_pc_cod[pos]
M3[NA_Valoracion_pc_cod_impu,"Valoracion_pc_cod"]
<- impu_Valoracion_pc_cod3
Matriz Confusión
CMT_Valoracion_pc_cod
<- (CM1_Valoracion_pc_cod)
for(i in 1:nrow(CMT_Valoracion_pc_cod))
{
for(j in 1:ncol(CMT_Valoracion_pc_cod))
{
if((CM1_Valoracion_pc_cod[i,j]+CM2_Valoracion_pc_cod[i,j]+CM3_Valoracion_pc_cod[i,j])%%3 != 0)
{
CMT_Valoracion_pc_cod[i,j] =
as.character(round((CM1_Valoracion_pc_cod[i,j]+CM2_Valoracion_pc_cod[i,j]+CM3_Valoracion_pc_cod[i,j])/3,2))
}else{
CMT_Valoracion_pc_cod[i,j] =
as.character(as.integer((CM1_Valoracion_pc_cod[i,j]+CM2_Valoracion_pc_cod[i,j]+CM3_Valoracion_pc_cod[i,j])/3))
}
}
}
CMT_Valoracion_pc_cod
= cbind(c(1:6),
CMT_Valoracion_pc_cod)
kable(CMT_Valoracion_pc_cod,
position = "center",
booktabs = TRUE, align
= "cccccc", caption
= "<left><em> Matriz de confusión Valoración Pablo
Casado </em></center>", escape
= FALSE, col.names = c("Prediction",
"1","2","3",
"4", "5",
"6"))%>%
kableExtra::footnote(symbol
= c("Al tomar la media de los elementos de las matrices de
confusión,
es posible que no se obtenga un
número entero"), threeparttable=T)%>%
kable_classic(full_width = F, html_font = "Times
New Roman")%>%
add_header_above(c(" " = 1, "Reference" = 1, "
" = 5))%>%
column_spec(1:7,
width = "1.2cm")
ACT_Valoracion_pc_cod
<- c(AC1_Valoracion_pc_cod,AC2_Valoracion_pc_cod,AC3_Valoracion_pc_cod)
ACM_Valoracion_pc_cod
<- mean(c(ACT_Valoracion_pc_cod))
ACSD_Valoracion_pc_cod
<- sqrt(var(ACT_Valoracion_pc_cod)/3)
-
Imputación de la valoración de Santiago Abascal
# M = 1
train2_Valoracion_sa_cod
<- conjunto[conjunto[,"Valoracion_sa_cod"]!="99",]
impu_Valoracion_sa_cod
<- conjunto[conjunto[,"Valoracion_sa_cod"]=="99",]
dim(train2_Valoracion_sa_cod)[1]
dim(impu_Valoracion_sa_cod)[1]
table(train2_Valoracion_sa_cod$Valoracion_sa_cod)
train2_Valoracion_sa_cod[,"Valoracion_sa_cod"]
<- droplevels(train2_Valoracion_sa_cod[,"Valoracion_sa_cod"])
table(train2_Valoracion_sa_cod$Valoracion_sa_cod)
ctrl
<- trainControl(method = "cv", number = 5)
# RF train with
CV to optimize number of variables
#library(doMC)
#registerDoMC(cores
= 2)
set.seed(0, sample.kind = "Rounding")
rfFit_Valoracion_sa_cod
<- train(Valoracion_sa_cod ~ .,
method = "rf",
data = train2_Valoracion_sa_cod,
preProcess = c("center", "scale"),
tuneGrid
= expand.grid(mtry = c(2:10)),
trControl
= ctrl)
rfFit_Valoracion_sa_cod
varImp(rfFit_Valoracion_sa_cod)
plot(varImp(rfFit_Valoracion_sa_cod), top = 10, col = "#74A9CF", main = "M1")
rfFit_Valoracion_sa_cod$finalModel
pred_Valoracion_sa_cod
<- predict(rfFit_Valoracion_sa_cod, test)
impu_Valoracion_sa_cod1
<- predict(rfFit_Valoracion_sa_cod, impu_Valoracion_sa_cod)
table(pred_Valoracion_sa_cod)
test_Valoracion_sa_cod
<- test$Valoracion_sa_cod[test$Valoracion_sa_cod!=99]
test_Valoracion_sa_cod
<- droplevels(test_Valoracion_sa_cod)
confusionMatrix(pred_Valoracion_sa_cod[test$Valoracion_sa_cod!=99],test_Valoracion_sa_cod)
CM1_Valoracion_sa_cod
<- confusionMatrix(pred_Valoracion_sa_cod[test$Valoracion_sa_cod!=99],test_Valoracion_sa_cod)$table
AC1_Valoracion_sa_cod<-
as.vector(confusionMatrix(pred_Valoracion_sa_cod[test$Valoracion_sa_cod!=99],test_Valoracion_sa_cod)$overall[1])
NA_Valoracion_sa_cod
<- as.numeric(rownames(test[test[,"Valoracion_sa_cod"]=='99',]))
pos =
c()
for(i in 1:nrow(test))
{
if(test[i,"Valoracion_sa_cod"]=="99")
{
pos=c(pos,i)
}
}
NA_Valoracion_sa_cod_impu
<- as.numeric(rownames(impu_Valoracion_sa_cod))
M1[NA_Valoracion_sa_cod,"Valoracion_sa_cod"]
<- pred_Valoracion_sa_cod[pos]
M1[NA_Valoracion_sa_cod_impu,"Valoracion_sa_cod"]
<- impu_Valoracion_sa_cod1
M = 2
set.seed(1, sample.kind = "Rounding")
rfFit2_Valoracion_sa_cod
<- train(Valoracion_sa_cod ~ .,
method = "rf",
data = train2_Valoracion_sa_cod,
preProcess = c("center", "scale"),
tuneGrid
= expand.grid(mtry = c(2:10)),
trControl
= ctrl)
rfFit2_Valoracion_sa_cod
varImp(rfFit2_Valoracion_sa_cod)
plot(varImp(rfFit2_Valoracion_sa_cod), top = 10, col = "#0570B0", main = "M2")
rfFit2_Valoracion_sa_cod$finalModel
pred2_Valoracion_sa_cod
<- predict(rfFit2_Valoracion_sa_cod, test)
impu_Valoracion_sa_cod2
<- predict(rfFit2_Valoracion_sa_cod, impu_Valoracion_sa_cod)
table(pred2_Valoracion_sa_cod)
confusionMatrix(pred2_Valoracion_sa_cod[test$Valoracion_sa_cod!=99],test_Valoracion_sa_cod)
CM2_Valoracion_sa_cod
<- confusionMatrix(pred2_Valoracion_sa_cod[test$Valoracion_sa_cod!=99],test_Valoracion_sa_cod)$table
AC2_Valoracion_sa_cod<-
as.vector(confusionMatrix(pred2_Valoracion_sa_cod[test$Valoracion_sa_cod!=99],test_Valoracion_sa_cod)$overall[1])
M2[NA_Valoracion_sa_cod,"Valoracion_sa_cod"]
<- pred2_Valoracion_sa_cod[pos]
M2[NA_Valoracion_sa_cod_impu,"Valoracion_sa_cod"]
<- impu_Valoracion_sa_cod2
M = 3
set.seed(2, sample.kind = "Rounding")
rfFit3_Valoracion_sa_cod
<- train(Valoracion_sa_cod ~ .,
method = "rf",
data = train2_Valoracion_sa_cod,
preProcess = c("center", "scale"),
tuneGrid
= expand.grid(mtry = c(2:10)),
trControl
= ctrl)
rfFit3_Valoracion_sa_cod
varImp(rfFit3_Valoracion_sa_cod)
plot(varImp(rfFit3_Valoracion_sa_cod), top = 10, col = "#41AE76", main = "M3")
rfFit3_Valoracion_sa_cod$finalModel
pred3_Valoracion_sa_cod
<- predict(rfFit3_Valoracion_sa_cod, test)
impu_Valoracion_sa_cod3
<- predict(rfFit3_Valoracion_sa_cod, impu_Valoracion_sa_cod)
table(pred3_Valoracion_sa_cod)
confusionMatrix(pred3_Valoracion_sa_cod[test$Valoracion_sa_cod!=99],test_Valoracion_sa_cod)
CM3_Valoracion_sa_cod
<- confusionMatrix(pred3_Valoracion_sa_cod[test$Valoracion_sa_cod!=99],test_Valoracion_sa_cod)$table
AC3_Valoracion_sa_cod<-
as.vector(confusionMatrix(pred3_Valoracion_sa_cod[test$Valoracion_sa_cod!=99],test_Valoracion_sa_cod)$overall[1])
M3[NA_Valoracion_sa_cod,"Valoracion_sa_cod"]
<- pred3_Valoracion_sa_cod[pos]
M3[NA_Valoracion_sa_cod_impu,"Valoracion_sa_cod"]
<- impu_Valoracion_sa_cod3
CMT_Valoracion_sa_cod
<- (CM1_Valoracion_sa_cod)
for(i in 1:nrow(CMT_Valoracion_sa_cod))
{
for(j in 1:ncol(CMT_Valoracion_sa_cod))
{
if((CM1_Valoracion_sa_cod[i,j]+CM2_Valoracion_sa_cod[i,j]+CM3_Valoracion_sa_cod[i,j])%%3
!= 0)
{
CMT_Valoracion_sa_cod[i,j]
= as.character(round((CM1_Valoracion_sa_cod[i,j]+CM2_Valoracion_sa_cod[i,j]+CM3_Valoracion_sa_cod[i,j])/3,2))
}else{
CMT_Valoracion_sa_cod[i,j]
= as.character(as.integer((CM1_Valoracion_sa_cod[i,j]+CM2_Valoracion_sa_cod[i,j]+CM3_Valoracion_sa_cod[i,j])/3))
}
}
}
CMT_Valoracion_sa_cod
= cbind(c(1:6),
CMT_Valoracion_sa_cod)
kable(CMT_Valoracion_sa_cod,
position = "center",
booktabs = TRUE, align
= "cccccc", caption
= "<left><em> Matriz de confusión Valoración Santiago
Abascal </em></center>", escape
= FALSE, col.names = c("Prediction",
"1","2","3",
"4", "5",
"6"))%>%
kableExtra::footnote(symbol
= c("Al tomar la media de los elementos de las matrices de
confusión,
es posible que no se obtenga un
número entero"), threeparttable=T)%>%
kable_classic(full_width = F, html_font = "Times
New Roman")%>%
add_header_above(c(" " = 1, "Reference" = 1, "
" = 5))%>%
column_spec(1:7,
width = "1.2cm")
ACT_Valoracion_sa_cod
<- c(AC1_Valoracion_sa_cod,AC2_Valoracion_sa_cod,AC3_Valoracion_sa_cod)
ACM_Valoracion_sa_cod
<- mean(c(ACT_Valoracion_sa_cod))
ACSD_Valoracion_sa_cod
<- sqrt(var(ACT_Valoracion_sa_cod)/3)
-
Imputación de la valoración de Inés Arrimadas
# M = 1
train2_Valoracion_ia_cod
<- conjunto[conjunto[,"Valoracion_ia_cod"]!="99",]
impu_Valoracion_ia_cod
<- conjunto[conjunto[,"Valoracion_ia_cod"]=="99",]
dim(train2_Valoracion_ia_cod)[1]
dim(impu_Valoracion_ia_cod)[1]
table(train2_Valoracion_ia_cod$Valoracion_ia_cod)
train2_Valoracion_ia_cod[,"Valoracion_ia_cod"]
<- droplevels(train2_Valoracion_ia_cod[,"Valoracion_ia_cod"])
table(train2_Valoracion_ia_cod$Valoracion_ia_cod)
ctrl
<- trainControl(method = "cv", number = 5)
# RF train with
CV to optimize number of variables
#library(doMC)
#registerDoMC(cores
= 2)
set.seed(0, sample.kind = "Rounding")
rfFit_Valoracion_ia_cod
<- train(Valoracion_ia_cod ~ .,
method = "rf",
data = train2_Valoracion_ia_cod,
preProcess = c("center", "scale"),
tuneGrid
= expand.grid(mtry = c(2:10)),
trControl
= ctrl)
rfFit_Valoracion_ia_cod
varImp(rfFit_Valoracion_ia_cod)
plot(varImp(rfFit_Valoracion_ia_cod), top = 10, col = "#74A9CF", main = "M1")
rfFit_Valoracion_ia_cod$finalModel
pred_Valoracion_ia_cod
<- predict(rfFit_Valoracion_ia_cod, test)
impu_Valoracion_ia_cod1
<- predict(rfFit_Valoracion_ia_cod, impu_Valoracion_ia_cod)
table(pred_Valoracion_ia_cod)
test_Valoracion_ia_cod
<- test$Valoracion_ia_cod[test$Valoracion_ia_cod!=99]
test_Valoracion_ia_cod
<- droplevels(test_Valoracion_ia_cod)
confusionMatrix(pred_Valoracion_ia_cod[test$Valoracion_ia_cod!=99],test_Valoracion_ia_cod)
CM1_Valoracion_ia_cod
<- confusionMatrix(pred_Valoracion_ia_cod[test$Valoracion_ia_cod!=99],test_Valoracion_ia_cod)$table
AC1_Valoracion_ia_cod<-
as.vector(confusionMatrix(pred_Valoracion_ia_cod[test$Valoracion_ia_cod!=99],test_Valoracion_ia_cod)$overall[1])
NA_Valoracion_ia_cod
<- as.numeric(rownames(test[test[,"Valoracion_ia_cod"]=='99',]))
pos =
c()
for(i in 1:nrow(test))
{
if(test[i,"Valoracion_ia_cod"]=="99")
{
pos=c(pos,i)
}
}
NA_Valoracion_ia_cod_impu
<- as.numeric(rownames(impu_Valoracion_ia_cod))
M1[NA_Valoracion_ia_cod,"Valoracion_ia_cod"]
<- pred_Valoracion_ia_cod[pos]
M1[NA_Valoracion_ia_cod_impu,"Valoracion_ia_cod"]
<- impu_Valoracion_ia_cod1
M = 2
set.seed(1, sample.kind = "Rounding")
rfFit2_Valoracion_ia_cod
<- train(Valoracion_ia_cod ~ .,
method = "rf",
data = train2_Valoracion_ia_cod,
preProcess = c("center", "scale"),
tuneGrid
= expand.grid(mtry = c(2:10)),
trControl
= ctrl)
rfFit2_Valoracion_ia_cod
varImp(rfFit2_Valoracion_ia_cod)
plot(varImp(rfFit2_Valoracion_ia_cod), top = 10, col = "#0570B0", main = "M2")
rfFit2_Valoracion_ia_cod$finalModel
pred2_Valoracion_ia_cod
<- predict(rfFit2_Valoracion_ia_cod, test)
impu_Valoracion_ia_cod2
<- predict(rfFit2_Valoracion_ia_cod, impu_Valoracion_ia_cod)
table(pred2_Valoracion_ia_cod)
confusionMatrix(pred2_Valoracion_ia_cod[test$Valoracion_ia_cod!=99],test_Valoracion_ia_cod)
CM2_Valoracion_ia_cod
<- confusionMatrix(pred2_Valoracion_ia_cod[test$Valoracion_ia_cod!=99],test_Valoracion_ia_cod)$table
AC2_Valoracion_ia_cod<-
as.vector(confusionMatrix(pred2_Valoracion_ia_cod[test$Valoracion_ia_cod!=99],test_Valoracion_ia_cod)$overall[1])
M2[NA_Valoracion_ia_cod,"Valoracion_ia_cod"]
<- pred2_Valoracion_ia_cod[pos]
M2[NA_Valoracion_ia_cod_impu,"Valoracion_ia_cod"]
<- impu_Valoracion_ia_cod2
M = 3
set.seed(2, sample.kind = "Rounding")
rfFit3_Valoracion_ia_cod
<- train(Valoracion_ia_cod ~ .,
method = "rf",
data = train2_Valoracion_ia_cod,
preProcess = c("center", "scale"),
tuneGrid
= expand.grid(mtry = c(2:10)),
trControl
= ctrl)
rfFit3_Valoracion_ia_cod
varImp(rfFit3_Valoracion_ia_cod)
plot(varImp(rfFit3_Valoracion_ia_cod), top = 10, col = "#41AE76", main = "M3")
rfFit3_Valoracion_ia_cod$finalModel
pred3_Valoracion_ia_cod
<- predict(rfFit3_Valoracion_ia_cod, test)
impu_Valoracion_ia_cod3
<- predict(rfFit3_Valoracion_ia_cod, impu_Valoracion_ia_cod)
table(pred3_Valoracion_ia_cod)
confusionMatrix(pred3_Valoracion_ia_cod[test$Valoracion_ia_cod!=99],test_Valoracion_ia_cod)
CM3_Valoracion_ia_cod
<- confusionMatrix(pred3_Valoracion_ia_cod[test$Valoracion_ia_cod!=99],test_Valoracion_ia_cod)$table
AC3_Valoracion_ia_cod<-
as.vector(confusionMatrix(pred3_Valoracion_ia_cod[test$Valoracion_ia_cod!=99],test_Valoracion_ia_cod)$overall[1])
M3[NA_Valoracion_ia_cod,"Valoracion_ia_cod"]
<- pred3_Valoracion_ia_cod[pos]
M3[NA_Valoracion_ia_cod_impu,"Valoracion_ia_cod"]
<- impu_Valoracion_ia_cod3
CMT_Valoracion_ia_cod
<- (CM1_Valoracion_ia_cod)
for(i in 1:nrow(CMT_Valoracion_ia_cod))
{
for(j in 1:ncol(CMT_Valoracion_ia_cod))
{
if((CM1_Valoracion_ia_cod[i,j]+CM2_Valoracion_ia_cod[i,j]+CM3_Valoracion_ia_cod[i,j])%%3
!= 0)
{
CMT_Valoracion_ia_cod[i,j]
= as.character(round((CM1_Valoracion_ia_cod[i,j]+CM2_Valoracion_ia_cod[i,j]+CM3_Valoracion_ia_cod[i,j])/3,2))
}else{
CMT_Valoracion_ia_cod[i,j]
= as.character(as.integer((CM1_Valoracion_ia_cod[i,j]+CM2_Valoracion_ia_cod[i,j]+CM3_Valoracion_ia_cod[i,j])/3))
}
}
}
CMT_Valoracion_ia_cod
= cbind(c(1:6),
CMT_Valoracion_ia_cod)
kable(CMT_Valoracion_ia_cod,
position = "center",
booktabs = TRUE, align
= "cccccc", caption
= "<left><em> Matriz de confusión Valoración Inés
Arrimadas </em></center>", escape
= FALSE, col.names = c("Prediction",
"1","2","3",
"4", "5",
"6"),position
= "center", row_label_position
= "c", font_size
= 15)%>%
kableExtra::footnote(symbol
= c("Al tomar la media de los elementos de las matrices de
confusión,
es posible que no se obtenga un
número entero"), threeparttable=T)%>%
kable_classic(full_width = F, html_font = "Times
New Roman")%>%
add_header_above(c(" " = 1, "Reference" = 1, "
" = 5))%>%
column_spec(1:7,
width = "1.2cm")
ACT_Valoracion_ia_cod
<- c(AC1_Valoracion_ia_cod,AC2_Valoracion_ia_cod,AC3_Valoracion_ia_cod)
ACM_Valoracion_ia_cod
<- mean(c(ACT_Valoracion_ia_cod))
ACSD_Valoracion_ia_cod
<- sqrt(var(ACT_Valoracion_ia_cod)/3)
-
Imputación de la cercanía partidista
# M = 1
train2_Cercania_cod
<- conjunto[conjunto[,"Cercania_cod"]!="99",]
impu_Cercania_cod
<- conjunto[conjunto[,"Cercania_cod"]=="99",]
dim(train2_Cercania_cod)[1]
dim(impu_Cercania_cod)[1]
table(train2_Cercania_cod$Cercania_cod)
train2_Cercania_cod[,"Cercania_cod"]
<- droplevels(train2_Cercania_cod[,"Cercania_cod"])
table(train2_Cercania_cod$Cercania_cod)
ctrl
<- trainControl(method = "cv", number = 5)
# RF train with
CV to optimize number of variables
#library(doMC)
#registerDoMC(cores
= 2)
set.seed(0, sample.kind = "Rounding")
rfFit_Cercania_cod
<- train(Cercania_cod ~ .,
method = "rf",
data = train2_Cercania_cod,
preProcess = c("center", "scale"),
tuneGrid =
expand.grid(mtry = c(2:10)),
trControl = ctrl)
rfFit_Cercania_cod
varImp(rfFit_Cercania_cod)
plot(varImp(rfFit_Cercania_cod), top = 10, col = "#74A9CF", main = "M1")
rfFit_Cercania_cod$finalModel
pred_Cercania_cod
<- predict(rfFit_Cercania_cod, test)
impu_Cercania_cod1
<- predict(rfFit_Cercania_cod, impu_Cercania_cod)
table(pred_Cercania_cod)
test_Cercania_cod
<- test$Cercania_cod[test$Cercania_cod!=99]
test_Cercania_cod
<- droplevels(test_Cercania_cod)
confusionMatrix(pred_Cercania_cod[test$Cercania_cod!=99],test_Cercania_cod)
CM1_Cercania_cod
<- confusionMatrix(pred_Cercania_cod[test$Cercania_cod!=99],test_Cercania_cod)$table
AC1_Cercania_cod<-
as.vector(confusionMatrix(pred_Cercania_cod[test$Cercania_cod!=99],test_Cercania_cod)$overall[1])
NA_Cercania_cod
<- as.numeric(rownames(test[test[,"Cercania_cod"]=='99',]))
pos =
c()
for(i in 1:nrow(test))
{
if(test[i,"Cercania_cod"]=="99")
{
pos=c(pos,i)
}
}
NA_Cercania_cod_impu
<- as.numeric(rownames(impu_Cercania_cod))
M1[NA_Cercania_cod,"Cercania_cod"]
<- pred_Cercania_cod[pos]
M1[NA_Cercania_cod_impu,"Cercania_cod"]
<- impu_Cercania_cod1
M = 2
set.seed(1, sample.kind = "Rounding")
rfFit2_Cercania_cod
<- train(Cercania_cod ~ .,
method = "rf",
data = train2_Cercania_cod,
preProcess = c("center", "scale"),
tuneGrid =
expand.grid(mtry = c(2:10)),
trControl = ctrl)
rfFit2_Cercania_cod
varImp(rfFit2_Cercania_cod)
plot(varImp(rfFit2_Cercania_cod), top = 10, col = "#0570B0", main = "M2")
rfFit2_Cercania_cod$finalModel
pred2_Cercania_cod
<- predict(rfFit2_Cercania_cod, test)
impu_Cercania_cod2
<- predict(rfFit2_Cercania_cod, impu_Cercania_cod)
table(pred2_Cercania_cod)
confusionMatrix(pred2_Cercania_cod[test$Cercania_cod!=99],test_Cercania_cod)
CM2_Cercania_cod
<- confusionMatrix(pred2_Cercania_cod[test$Cercania_cod!=99],test_Cercania_cod)$table
AC2_Cercania_cod<-
as.vector(confusionMatrix(pred2_Cercania_cod[test$Cercania_cod!=99],test_Cercania_cod)$overall[1])
M2[NA_Cercania_cod,"Cercania_cod"]
<- pred2_Cercania_cod[pos]
M2[NA_Cercania_cod_impu,"Cercania_cod"]
<- impu_Cercania_cod2
M = 3
set.seed(2, sample.kind = "Rounding")
rfFit3_Cercania_cod
<- train(Cercania_cod ~ .,
method = "rf",
data = train2_Cercania_cod,
preProcess = c("center", "scale"),
tuneGrid =
expand.grid(mtry = c(2:10)),
trControl = ctrl)
rfFit3_Cercania_cod
varImp(rfFit3_Cercania_cod)
plot(varImp(rfFit3_Cercania_cod), top = 10, col = "#41AE76", main = "M3")
rfFit3_Cercania_cod$finalModel
pred3_Cercania_cod
<- predict(rfFit3_Cercania_cod, test)
impu_Cercania_cod3
<- predict(rfFit3_Cercania_cod, impu_Cercania_cod)
table(pred3_Cercania_cod)
confusionMatrix(pred3_Cercania_cod[test$Cercania_cod!=99],test_Cercania_cod)
CM3_Cercania_cod
<- confusionMatrix(pred3_Cercania_cod[test$Cercania_cod!=99],test_Cercania_cod)$table
AC3_Cercania_cod<-
as.vector(confusionMatrix(pred3_Cercania_cod[test$Cercania_cod!=99],test_Cercania_cod)$overall[1])
M3[NA_Cercania_cod,"Cercania_cod"]
<- pred3_Cercania_cod[pos]
M3[NA_Cercania_cod_impu,"Cercania_cod"]
<- impu_Cercania_cod3
Matriz Confusión
CMT_Cercania_cod
<- (CM1_Cercania_cod)
for(i in 1:nrow(CMT_Cercania_cod))
{
for(j in 1:ncol(CMT_Cercania_cod))
{
if((CM1_Cercania_cod[i,j]+CM2_Cercania_cod[i,j]+CM3_Cercania_cod[i,j])%%3 != 0)
{
CMT_Cercania_cod[i,j] =
as.character(round((CM1_Cercania_cod[i,j]+CM2_Cercania_cod[i,j]+CM3_Cercania_cod[i,j])/3,2))
}else{
CMT_Cercania_cod[i,j]
= as.character(as.integer((CM1_Cercania_cod[i,j]+CM2_Cercania_cod[i,j]+CM3_Cercania_cod[i,j])/3))
}
}
}
CMT_Cercania_cod
= cbind(c(1:10),
CMT_Cercania_cod)
kable(CMT_Cercania_cod,
position = "center",
booktabs = TRUE, align
= "cccccc", caption
= "<left><em> Matriz de confusión Cercanía partidista
</em></center>", escape
= FALSE, col.names = c("Prediction",
"1","2","3",
"4", "5",
"6", "7",
"8", "9",
"10"),position
= "center", row_label_position
= "c", font_size
= 15 )%>%
kableExtra::footnote(symbol
= c("Al tomar la media de los elementos de las matrices de
confusión,
es posible que no se obtenga un
número entero"), threeparttable=T)%>%
kable_classic(full_width = F, html_font = "Times
New Roman")%>%
add_header_above(c(" " = 1, "Reference" = 1, "
" = 9))%>%
column_spec(1:11, width = "1.2cm")
ACT_Cercania_cod
<- c(AC1_Cercania_cod,AC2_Cercania_cod,AC3_Cercania_cod)
ACM_Cercania_cod
<- mean(c(ACT_Cercania_cod))
ACSD_Cercania_cod
<- sqrt(var(ACT_Cercania_cod)/3)
-
Imputación de la preferencia de presidente
# M = 1
train2_Pref_presi_cod
<- conjunto[conjunto[,"Pref_presi_cod"]!="99",]
impu_Pref_presi_cod
<- conjunto[conjunto[,"Pref_presi_cod"]=="99",]
dim(train2_Pref_presi_cod)[1]
dim(impu_Pref_presi_cod)[1]
table(train2_Pref_presi_cod$Pref_presi_cod)
train2_Pref_presi_cod[,"Pref_presi_cod"]
<- droplevels(train2_Pref_presi_cod[,"Pref_presi_cod"])
table(train2_Pref_presi_cod$Pref_presi_cod)
ctrl
<- trainControl(method = "cv", number = 5)
# RF train with
CV to optimize number of variables
#library(doMC)
#registerDoMC(cores
= 2)
set.seed(0, sample.kind = "Rounding")
rfFit_Pref_presi_cod
<- train(Pref_presi_cod ~ .,
method = "rf",
data = train2_Pref_presi_cod,
preProcess = c("center", "scale"),
tuneGrid =
expand.grid(mtry = c(2:10)),
trControl = ctrl)
rfFit_Pref_presi_cod
varImp(rfFit_Pref_presi_cod)
plot(varImp(rfFit_Pref_presi_cod), top = 10, col = "#74A9CF", main = "M1")
rfFit_Pref_presi_cod$finalModel
pred_Pref_presi_cod
<- predict(rfFit_Pref_presi_cod, test)
impu_Pref_presi_cod1
<- predict(rfFit_Pref_presi_cod, impu_Pref_presi_cod)
table(pred_Pref_presi_cod)
test_Pref_presi_cod
<- test$Pref_presi_cod[test$Pref_presi_cod!=99]
test_Pref_presi_cod
<- droplevels(test_Pref_presi_cod)
confusionMatrix(pred_Pref_presi_cod[test$Pref_presi_cod!=99],test_Pref_presi_cod)
CM1_Pref_presi_cod
<- confusionMatrix(pred_Pref_presi_cod[test$Pref_presi_cod!=99],test_Pref_presi_cod)$table
AC1_Pref_presi_cod<-
as.vector(confusionMatrix(pred_Pref_presi_cod[test$Pref_presi_cod!=99],test_Pref_presi_cod)$overall[1])
NA_Pref_presi_cod
<- as.numeric(rownames(test[test[,"Pref_presi_cod"]=='99',]))
pos =
c()
for(i in 1:nrow(test))
{
if(test[i,"Pref_presi_cod"]=="99")
{
pos=c(pos,i)
}
}
NA_Pref_presi_cod_impu
<- as.numeric(rownames(impu_Pref_presi_cod))
M1[NA_Pref_presi_cod,"Pref_presi_cod"]
<- pred_Pref_presi_cod[pos]
M1[NA_Pref_presi_cod_impu,"Pref_presi_cod"]
<- impu_Pref_presi_cod1
M = 2
set.seed(1, sample.kind = "Rounding")
rfFit2_Pref_presi_cod
<- train(Pref_presi_cod ~ .,
method = "rf",
data = train2_Pref_presi_cod,
preProcess = c("center", "scale"),
tuneGrid =
expand.grid(mtry = c(2:10)),
trControl = ctrl)
rfFit2_Pref_presi_cod
varImp(rfFit2_Pref_presi_cod)
plot(varImp(rfFit2_Pref_presi_cod), top = 10, col = "#0570B0", main = "M2")
rfFit2_Pref_presi_cod$finalModel
pred2_Pref_presi_cod
<- predict(rfFit2_Pref_presi_cod, test)
impu_Pref_presi_cod2
<- predict(rfFit2_Pref_presi_cod, impu_Pref_presi_cod)
table(pred2_Pref_presi_cod)
confusionMatrix(pred2_Pref_presi_cod[test$Pref_presi_cod!=99],test_Pref_presi_cod)
CM2_Pref_presi_cod
<- confusionMatrix(pred2_Pref_presi_cod[test$Pref_presi_cod!=99],test_Pref_presi_cod)$table
AC2_Pref_presi_cod<-
as.vector(confusionMatrix(pred2_Pref_presi_cod[test$Pref_presi_cod!=99],test_Pref_presi_cod)$overall[1])
M2[NA_Pref_presi_cod,"Pref_presi_cod"]
<- pred2_Pref_presi_cod[pos]
M2[NA_Pref_presi_cod_impu,"Pref_presi_cod"]
<- impu_Pref_presi_cod2
M = 3
set.seed(2, sample.kind = "Rounding")
rfFit3_Pref_presi_cod
<- train(Pref_presi_cod ~ .,
method = "rf",
data = train2_Pref_presi_cod,
preProcess = c("center", "scale"),
tuneGrid =
expand.grid(mtry = c(2:10)),
trControl = ctrl)
rfFit3_Pref_presi_cod
varImp(rfFit3_Pref_presi_cod)
plot(varImp(rfFit3_Pref_presi_cod), top = 10, col = "#41AE76", main = "M3")
rfFit3_Pref_presi_cod$finalModel
pred3_Pref_presi_cod
<- predict(rfFit3_Pref_presi_cod, test)
impu_Pref_presi_cod3
<- predict(rfFit3_Pref_presi_cod, impu_Pref_presi_cod)
table(pred3_Pref_presi_cod)
confusionMatrix(pred3_Pref_presi_cod[test$Pref_presi_cod!=99],test_Pref_presi_cod)
CM3_Pref_presi_cod
<- confusionMatrix(pred3_Pref_presi_cod[test$Pref_presi_cod!=99],test_Pref_presi_cod)$table
AC3_Pref_presi_cod<-
as.vector(confusionMatrix(pred3_Pref_presi_cod[test$Pref_presi_cod!=99],test_Pref_presi_cod)$overall[1])
M3[NA_Pref_presi_cod,"Pref_presi_cod"]
<- pred3_Pref_presi_cod[pos]
M3[NA_Pref_presi_cod_impu,"Pref_presi_cod"]
<- impu_Pref_presi_cod3
Matriz Confusión
CMT_Pref_presi_cod
<- (CM1_Pref_presi_cod)
for(i in 1:nrow(CMT_Pref_presi_cod))
{
for(j in 1:ncol(CMT_Pref_presi_cod))
{
if((CM1_Pref_presi_cod[i,j]+CM2_Pref_presi_cod[i,j]+CM3_Pref_presi_cod[i,j])%%3 != 0)
{
CMT_Pref_presi_cod[i,j] =
as.character(round((CM1_Pref_presi_cod[i,j]+CM2_Pref_presi_cod[i,j]+CM3_Pref_presi_cod[i,j])/3,2))
}else{
CMT_Pref_presi_cod[i,j] =
as.character(as.integer((CM1_Pref_presi_cod[i,j]+CM2_Pref_presi_cod[i,j]+CM3_Pref_presi_cod[i,j])/3))
}
}
}
CMT_Pref_presi_cod =
cbind(c(1:9), CMT_Pref_presi_cod)
kable(CMT_Pref_presi_cod, position = "center", booktabs = TRUE, align = "cccccc", caption = "<left><em>
Matriz de confusión Preferencia como presidente del gobierno
</em></center>", escape = FALSE, col.names = c("Prediction", "1","2","3", "4", "5", "6", "7", "8", "9"),position = "center", row_label_position = "c", font_size = 15)
%>%
kableExtra::footnote(symbol
= c("Al tomar la media de los elementos de las matrices de
confusión,
es posible que no se obtenga un
número entero"), threeparttable=T)%>%
kable_classic(full_width = F, html_font = "Times
New Roman")%>%
add_header_above(c(" " = 1, "Reference" = 1, "
" = 8))%>%
column_spec(1:10, width = "1.2cm")
ACT_Pref_presi_cod
<- c(AC1_Pref_presi_cod,AC2_Pref_presi_cod,AC3_Pref_presi_cod)
ACM_Pref_presi_cod
<- mean(c(ACT_Pref_presi_cod))
ACSD_Pref_presi_cod
<- sqrt(var(ACT_Pref_presi_cod)/3)
-
Imputación de la auto-ubicación ideológica
# M = 1
train2_Ideologia_cod
<- conjunto[conjunto[,"Ideologia_cod"]!="99",]
impu_Ideologia_cod
<- conjunto[conjunto[,"Ideologia_cod"]=="99",]
dim(train2_Ideologia_cod)[1]
dim(impu_Ideologia_cod)[1]
table(train2_Ideologia_cod$Ideologia_cod)
train2_Ideologia_cod[,"Ideologia_cod"]
<- droplevels(train2_Ideologia_cod[,"Ideologia_cod"])
table(train2_Ideologia_cod$Ideologia_cod)
ctrl
<- trainControl(method = "cv", number = 5)
# RF train with
CV to optimize number of variables
#library(doMC)
#registerDoMC(cores
= 2)
set.seed(0, sample.kind = "Rounding")
rfFit_Ideologia_cod
<- train(Ideologia_cod ~ .,
method = "rf",
data = train2_Ideologia_cod,
preProcess = c("center", "scale"),
tuneGrid =
expand.grid(mtry = c(2:10)),
trControl = ctrl)
rfFit_Ideologia_cod
varImp(rfFit_Ideologia_cod)
plot(varImp(rfFit_Ideologia_cod), top = 10, col = "#74A9CF", main = "M1")
rfFit_Ideologia_cod$finalModel
pred_Ideologia_cod
<- predict(rfFit_Ideologia_cod, test)
impu_Ideologia_cod1
<- predict(rfFit_Ideologia_cod, impu_Ideologia_cod)
table(pred_Ideologia_cod)
test_Ideologia_cod
<- test$Ideologia_cod[test$Ideologia_cod!=99]
test_Ideologia_cod
<- fct_drop(test_Ideologia_cod, only = "99")
confusionMatrix(pred_Ideologia_cod[test$Ideologia_cod!=99],test_Ideologia_cod)
CM1_Ideologia_cod
<- confusionMatrix(pred_Ideologia_cod[test$Ideologia_cod!=99],test_Ideologia_cod)$table
AC1_Ideologia_cod<-
as.vector(confusionMatrix(pred_Ideologia_cod[test$Ideologia_cod!=99],test_Ideologia_cod)$overall[1])
NA_Ideologia_cod
<- as.numeric(rownames(test[test[,"Ideologia_cod"]=='99',]))
pos =
c()
for(i in 1:nrow(test))
{
if(test[i,"Ideologia_cod"]=="99")
{
pos=c(pos,i)
}
}
NA_Ideologia_cod_impu
<- as.numeric(rownames(impu_Ideologia_cod))
M1[NA_Ideologia_cod,"Ideologia_cod"]
<- pred_Ideologia_cod[pos]
M1[NA_Ideologia_cod_impu,"Ideologia_cod"]
<- impu_Ideologia_cod1
M = 2
set.seed(1, sample.kind = "Rounding")
rfFit2_Ideologia_cod
<- train(Ideologia_cod ~ .,
method = "rf",
data = train2_Ideologia_cod,
preProcess = c("center", "scale"),
tuneGrid =
expand.grid(mtry = c(2:10)),
trControl = ctrl)
rfFit2_Ideologia_cod
varImp(rfFit2_Ideologia_cod)
plot(varImp(rfFit2_Ideologia_cod), top = 10, col = "#0570B0", main = "M2")
rfFit2_Ideologia_cod$finalModel
pred2_Ideologia_cod
<- predict(rfFit2_Ideologia_cod, test)
impu_Ideologia_cod2
<- predict(rfFit2_Ideologia_cod, impu_Ideologia_cod)
table(pred2_Ideologia_cod)
confusionMatrix(pred2_Ideologia_cod[test$Ideologia_cod!=99],test_Ideologia_cod)
CM2_Ideologia_cod
<- confusionMatrix(pred2_Ideologia_cod[test$Ideologia_cod!=99],test_Ideologia_cod)$table
AC2_Ideologia_cod<-
as.vector(confusionMatrix(pred2_Ideologia_cod[test$Ideologia_cod!=99],test_Ideologia_cod)$overall[1])
M2[NA_Ideologia_cod,"Ideologia_cod"]
<- pred2_Ideologia_cod[pos]
M2[NA_Ideologia_cod_impu,"Ideologia_cod"]
<- impu_Ideologia_cod2
M = 3
set.seed(2, sample.kind = "Rounding")
rfFit3_Ideologia_cod
<- train(Ideologia_cod ~ .,
method = "rf",
data = train2_Ideologia_cod,
preProcess = c("center", "scale"),
tuneGrid =
expand.grid(mtry = c(2:10)),
trControl = ctrl)
rfFit3_Ideologia_cod
varImp(rfFit3_Ideologia_cod)
plot(varImp(rfFit3_Ideologia_cod), top = 10, col = "#41AE76", main = "M3")
rfFit3_Ideologia_cod$finalModel
pred3_Ideologia_cod
<- predict(rfFit3_Ideologia_cod, test)
impu_Ideologia_cod3
<- predict(rfFit3_Ideologia_cod, impu_Ideologia_cod)
table(pred3_Ideologia_cod)
confusionMatrix(pred3_Ideologia_cod[test$Ideologia_cod!=99],test_Ideologia_cod)
CM3_Ideologia_cod
<- confusionMatrix(pred3_Ideologia_cod[test$Ideologia_cod!=99],test_Ideologia_cod)$table
AC3_Ideologia_cod<-
as.vector(confusionMatrix(pred3_Ideologia_cod[test$Ideologia_cod!=99],test_Ideologia_cod)$overall[1])
M3[NA_Ideologia_cod,"Ideologia_cod"]
<- pred3_Ideologia_cod[pos]
M3[NA_Ideologia_cod_impu,"Ideologia_cod"]
<- impu_Ideologia_cod3
Matriz Confusión:
CMT_Ideologia_cod
<- (CM1_Ideologia_cod)
for(i in 1:nrow(CMT_Ideologia_cod))
{
for(j in 1:ncol(CMT_Ideologia_cod))
{
if((CM1_Ideologia_cod[i,j]+CM2_Ideologia_cod[i,j]+CM3_Ideologia_cod[i,j])%%3 != 0)
{
CMT_Ideologia_cod[i,j] =
as.character(round((CM1_Ideologia_cod[i,j]+CM2_Ideologia_cod[i,j]+CM3_Ideologia_cod[i,j])/3,2))
}else{
CMT_Ideologia_cod[i,j] =
as.character(as.integer((CM1_Ideologia_cod[i,j]+CM2_Ideologia_cod[i,j]+CM3_Ideologia_cod[i,j])/3))
}
}
}
CMT_Ideologia_cod =
cbind(c(1:10), CMT_Ideologia_cod)
CM1_Ideologia_cod =
cbind(c(1:10), CM1_Ideologia_cod)
CM2_Ideologia_cod =
cbind(c(1:10), CM2_Ideologia_cod)
CM3_Ideologia_cod =
cbind(c(1:10), CM3_Ideologia_cod)
kable(CMT_Ideologia_cod, position = "center", booktabs = TRUE, align = "cccccc", caption = "<left><em>
Matriz de confusión Ideología </em></center>", escape = FALSE, col.names = c("Prediction", "1","2","3", "4", "5", "6", "7", "8", "9", "10"))%>%
kableExtra::footnote(symbol
= c("Al tomar la media de los elementos de las matrices de confusión,
es posible que no se
obtenga un número entero"), threeparttable=T)%>%
kable_classic(full_width = F, html_font = "Times
New Roman")%>%
add_header_above(c(" " = 1, "Reference" = 1, "
" = 9))%>%
column_spec(1:11, width = "1.2cm")
kable(CM1_Ideologia_cod, position = "center", booktabs = TRUE, align = "cccccc", caption = "<left><em>
Matriz de confusión Ideología 1ª imputación </em></center>", escape = FALSE, col.names = c("Prediction", "1","2","3", "4", "5", "6", "7", "8", "9", "10"))%>%
kable_classic(full_width = F, html_font = "Times
New Roman")%>%
add_header_above(c(" " = 1, "Reference" = 1, "
" = 9))%>%
column_spec(1:11, width = "1.2cm")
kable(CM2_Ideologia_cod, position = "center", booktabs = TRUE, align = "cccccc", caption = "<left><em>
Matriz de confusión Ideología 2ª imputación </em></center>", escape = FALSE, col.names = c("Prediction", "1","2","3", "4", "5", "6", "7", "8", "9", "10"))%>%
kable_classic(full_width = F, html_font = "Times
New Roman")%>%
add_header_above(c(" " = 1, "Reference" = 1, "
" = 9))%>%
column_spec(1:11, width = "1.2cm")
kable(CM3_Ideologia_cod, position = "center", booktabs = TRUE, align = "cccccc", caption = "<left><em>
Matriz de confusión Ideología 3ª imputación </em></center>", escape = FALSE, col.names = c("Prediction", "1","2","3", "4", "5", "6", "7", "8", "9", "10"))%>%
kable_classic(full_width = F, html_font = "Times
New Roman")%>%
add_header_above(c(" " = 1, "Reference" = 1, "
" = 9))%>%
column_spec(1:11, width = "1.2cm")
ACT_Ideologia_cod
<- c(AC1_Ideologia_cod,AC2_Ideologia_cod,AC3_Ideologia_cod)
ACM_Ideologia_cod
<- mean(c(ACT_Ideologia_cod))
ACSD_Ideologia_cod
<- sqrt(var(ACT_Ideologia_cod)/3)
-
Imputación de la clasificación
ideológica de Pablo Casado
# M = 1
train2_Ideologia_pc_cod
<- conjunto[conjunto[,"Ideologia_pc_cod"]!="99",]
impu_Ideologia_pc_cod
<- conjunto[conjunto[,"Ideologia_pc_cod"]=="99",]
dim(train2_Ideologia_pc_cod)[1]
dim(impu_Ideologia_pc_cod)[1]
table(train2_Ideologia_pc_cod$Ideologia_pc_cod)
train2_Ideologia_pc_cod[,"Ideologia_pc_cod"]
<- droplevels(train2_Ideologia_pc_cod[,"Ideologia_pc_cod"])
table(train2_Ideologia_pc_cod$Ideologia_pc_cod)
ctrl
<- trainControl(method = "cv", number = 5)
# RF train with
CV to optimize number of variables
#library(doMC)
#registerDoMC(cores
= 2)
set.seed(0, sample.kind = "Rounding")
rfFit_Ideologia_pc_cod
<- train(Ideologia_pc_cod ~ .,
method = "rf",
data = train2_Ideologia_pc_cod,
preProcess = c("center", "scale"),
tuneGrid =
expand.grid(mtry = c(2:10)),
trControl = ctrl)
rfFit_Ideologia_pc_cod
varImp(rfFit_Ideologia_pc_cod)
plot(varImp(rfFit_Ideologia_pc_cod), top = 10, col = "#74A9CF", main = "M1")
rfFit_Ideologia_pc_cod$finalModel
pred_Ideologia_pc_cod
<- predict(rfFit_Ideologia_pc_cod, test)
impu_Ideologia_pc_cod1
<- predict(rfFit_Ideologia_pc_cod, impu_Ideologia_pc_cod)
table(pred_Ideologia_pc_cod)
test_Ideologia_pc_cod
<- test$Ideologia_pc_cod[test$Ideologia_pc_cod!=99]
test_Ideologia_pc_cod
<- fct_drop(test_Ideologia_pc_cod, only = "99")
confusionMatrix(pred_Ideologia_pc_cod[test$Ideologia_pc_cod!=99],test_Ideologia_pc_cod)
CM1_Ideologia_pc_cod
<- confusionMatrix(pred_Ideologia_pc_cod[test$Ideologia_pc_cod!=99],test_Ideologia_pc_cod)$table
AC1_Ideologia_pc_cod<-
as.vector(confusionMatrix(pred_Ideologia_pc_cod[test$Ideologia_pc_cod!=99],test_Ideologia_pc_cod)$overall[1])
NA_Ideologia_pc_cod
<- as.numeric(rownames(test[test[,"Ideologia_pc_cod"]=='99',]))
pos =
c()
for(i in 1:nrow(test))
{
if(test[i,"Ideologia_pc_cod"]=="99")
{
pos=c(pos,i)
}
}
NA_Ideologia_pc_cod_impu
<- as.numeric(rownames(impu_Ideologia_pc_cod))
M1[NA_Ideologia_pc_cod,"Ideologia_pc_cod"]
<- pred_Ideologia_pc_cod[pos]
M1[NA_Ideologia_pc_cod_impu,"Ideologia_pc_cod"]
<- impu_Ideologia_pc_cod1
M = 2
set.seed(1, sample.kind = "Rounding")
rfFit2_Ideologia_pc_cod
<- train(Ideologia_pc_cod ~ .,
method = "rf",
data = train2_Ideologia_pc_cod,
preProcess = c("center", "scale"),
tuneGrid =
expand.grid(mtry = c(2:10)),
trControl = ctrl)
rfFit2_Ideologia_pc_cod
varImp(rfFit2_Ideologia_pc_cod)
plot(varImp(rfFit2_Ideologia_pc_cod), top = 10, col = "#0570B0", main = "M2")
rfFit2_Ideologia_pc_cod$finalModel
pred2_Ideologia_pc_cod
<- predict(rfFit2_Ideologia_pc_cod, test)
impu_Ideologia_pc_cod2
<- predict(rfFit2_Ideologia_pc_cod, impu_Ideologia_pc_cod)
table(pred2_Ideologia_pc_cod)
confusionMatrix(pred2_Ideologia_pc_cod[test$Ideologia_pc_cod!=99],test_Ideologia_pc_cod)
CM2_Ideologia_pc_cod
<- confusionMatrix(pred2_Ideologia_pc_cod[test$Ideologia_pc_cod!=99],test_Ideologia_pc_cod)$table
AC2_Ideologia_pc_cod<-
as.vector(confusionMatrix(pred2_Ideologia_pc_cod[test$Ideologia_pc_cod!=99],test_Ideologia_pc_cod)$overall[1])
M2[NA_Ideologia_pc_cod,"Ideologia_pc_cod"]
<- pred2_Ideologia_pc_cod[pos]
M2[NA_Ideologia_pc_cod_impu,"Ideologia_pc_cod"]
<- impu_Ideologia_pc_cod2
M = 3
set.seed(2, sample.kind = "Rounding")
rfFit3_Ideologia_pc_cod
<- train(Ideologia_pc_cod ~ .,
method = "rf",
data = train2_Ideologia_pc_cod,
preProcess = c("center", "scale"),
tuneGrid =
expand.grid(mtry = c(2:10)),
trControl = ctrl)
rfFit3_Ideologia_pc_cod
varImp(rfFit3_Ideologia_pc_cod)
plot(varImp(rfFit3_Ideologia_pc_cod), top = 10, col = "#41AE76", main = "M3")
rfFit3_Ideologia_pc_cod$finalModel
pred3_Ideologia_pc_cod
<- predict(rfFit3_Ideologia_pc_cod, test)
impu_Ideologia_pc_cod3
<- predict(rfFit3_Ideologia_pc_cod, impu_Ideologia_pc_cod)
table(pred3_Ideologia_pc_cod)
confusionMatrix(pred3_Ideologia_pc_cod[test$Ideologia_pc_cod!=99],test_Ideologia_pc_cod)
CM3_Ideologia_pc_cod
<- confusionMatrix(pred3_Ideologia_pc_cod[test$Ideologia_pc_cod!=99],test_Ideologia_pc_cod)$table
AC3_Ideologia_pc_cod<-
as.vector(confusionMatrix(pred3_Ideologia_pc_cod[test$Ideologia_pc_cod!=99],test_Ideologia_pc_cod)$overall[1])
M3[NA_Ideologia_pc_cod,"Ideologia_pc_cod"]
<- pred3_Ideologia_pc_cod[pos]
M3[NA_Ideologia_pc_cod_impu,"Ideologia_pc_cod"]
<- impu_Ideologia_pc_cod3
Matriz Confusión:
CMT_Ideologia_pc_cod
<- (CM1_Ideologia_pc_cod)
for(i in 1:nrow(CMT_Ideologia_pc_cod))
{
for(j in 1:ncol(CMT_Ideologia_pc_cod))
{
if((CM1_Ideologia_pc_cod[i,j]+CM2_Ideologia_pc_cod[i,j]+CM3_Ideologia_pc_cod[i,j])%%3 != 0)
{
CMT_Ideologia_pc_cod[i,j] =
as.character(round((CM1_Ideologia_pc_cod[i,j]+CM2_Ideologia_pc_cod[i,j]+CM3_Ideologia_pc_cod[i,j])/3,2))
}else{
CMT_Ideologia_pc_cod[i,j] =
as.character(as.integer((CM1_Ideologia_pc_cod[i,j]+CM2_Ideologia_pc_cod[i,j]+CM3_Ideologia_pc_cod[i,j])/3))
}
}
}
CMT_Ideologia_pc_cod =
cbind(c(1:11), CMT_Ideologia_pc_cod)
kable(CMT_Ideologia_pc_cod, position = "center", booktabs = TRUE, align = "cccccc", caption = "<left><em>
Matriz de confusión Clasificación ideológica Pablo Casado
</em></center>", escape = FALSE, col.names = c("Prediction", "1","2","3", "4", "5", "6", "7", "8", "9", "10", "11"), position = "center", row_label_position = "c", font_size = 15)%>%
kableExtra::footnote(symbol
= c("Al tomar la media de los elementos de las matrices de confusión,
es posible que no se
obtenga un número entero"), threeparttable=T)%>%
kable_classic(full_width = F, html_font = "Times
New Roman")%>%
add_header_above(c(" " = 1, "Reference" = 1, "
" = 10))%>%
column_spec(1:12, width = "1.2cm")
ACT_Ideologia_pc_cod
<- c(AC1_Ideologia_pc_cod,AC2_Ideologia_pc_cod,AC3_Ideologia_pc_cod)
ACM_Ideologia_pc_cod
<- mean(c(ACT_Ideologia_pc_cod))
ACSD_Ideologia_pc_cod
<- sqrt(var(ACT_Ideologia_pc_cod)/3)
-
Imputación del recuerdo de voto en las anteriores elecciones
# M = 1
train2_Recuerdo_cod
<- conjunto[conjunto[,"Recuerdo_cod"]!="99",]
impu_Recuerdo_cod
<- conjunto[conjunto[,"Recuerdo_cod"]=="99",]
dim(train2_Recuerdo_cod)[1]
dim(impu_Recuerdo_cod)[1]
table(train2_Recuerdo_cod$Recuerdo_cod)
train2_Recuerdo_cod[,"Recuerdo_cod"]
<- droplevels(train2_Recuerdo_cod[,"Recuerdo_cod"])
table(train2_Recuerdo_cod$Recuerdo_cod)
ctrl
<- trainControl(method = "cv", number = 5)
# RF train with
CV to optimize number of variables
#library(doMC)
#registerDoMC(cores
= 2)
set.seed(0, sample.kind = "Rounding")
rfFit_Recuerdo_cod
<- train(Recuerdo_cod ~ .,
method = "rf",
data = train2_Recuerdo_cod,
preProcess = c("center", "scale"),
tuneGrid
= expand.grid(mtry = c(2:10)),
trControl
= ctrl)
rfFit_Recuerdo_cod
varImp(rfFit_Recuerdo_cod)
plot(varImp(rfFit_Recuerdo_cod), top = 10, col = "#74A9CF", main = "M1")
rfFit_Recuerdo_cod$finalModel
pred_Recuerdo_cod
<- predict(rfFit_Recuerdo_cod, test)
impu_Recuerdo_cod1
<- predict(rfFit_Recuerdo_cod, impu_Recuerdo_cod)
table(pred_Recuerdo_cod)
test_Recuerdo_cod
<- test$Recuerdo_cod[test$Recuerdo_cod!=99]
test_Recuerdo_cod
<- droplevels(test_Recuerdo_cod)
confusionMatrix(pred_Recuerdo_cod[test$Recuerdo_cod!=99],test_Recuerdo_cod)
CM1_Recuerdo_cod
<- confusionMatrix(pred_Recuerdo_cod[test$Recuerdo_cod!=99],test_Recuerdo_cod)$table
AC1_Recuerdo_cod
<- as.vector(confusionMatrix(pred_Recuerdo_cod[test$Recuerdo_cod!=99],test_Recuerdo_cod)$overall[1])
NA_Recuerdo_cod
<- as.numeric(rownames(test[test[,"Recuerdo_cod"]=='99',]))
pos =
c()
for(i in 1:nrow(test))
{
if(test[i,"Recuerdo_cod"]=="99")
{
pos=c(pos,i)
}
}
NA_Recuerdo_cod_impu
<- as.numeric(rownames(impu_Recuerdo_cod))
M1[NA_Recuerdo_cod,"Recuerdo_cod"]
<- pred_Recuerdo_cod[pos]
M1[NA_Recuerdo_cod_impu,"Recuerdo_cod"]
<- impu_Recuerdo_cod1
M = 2
set.seed(1, sample.kind = "Rounding")
rfFit2_Recuerdo_cod
<- train(Recuerdo_cod ~ .,
method = "rf",
data = train2_Recuerdo_cod,
preProcess = c("center", "scale"),
tuneGrid
= expand.grid(mtry = c(2:10)),
trControl
= ctrl)
rfFit2_Recuerdo_cod
varImp(rfFit2_Recuerdo_cod)
plot(varImp(rfFit2_Recuerdo_cod), top = 10, col = "#0570B0", main = "M2")
rfFit2_Recuerdo_cod$finalModel
pred2_Recuerdo_cod
<- predict(rfFit2_Recuerdo_cod, test)
impu_Recuerdo_cod2
<- predict(rfFit2_Recuerdo_cod, impu_Recuerdo_cod)
table(pred2_Recuerdo_cod)
confusionMatrix(pred2_Recuerdo_cod[test$Recuerdo_cod!=99],test_Recuerdo_cod)
CM2_Recuerdo_cod
<- confusionMatrix(pred2_Recuerdo_cod[test$Recuerdo_cod!=99],test_Recuerdo_cod)$table
AC2_Recuerdo_cod
<- as.vector(confusionMatrix(pred2_Recuerdo_cod[test$Recuerdo_cod!=99],test_Recuerdo_cod)$overall[1])
M2[NA_Recuerdo_cod,"Recuerdo_cod"]
<- pred2_Recuerdo_cod[pos]
M2[NA_Recuerdo_cod_impu,"Recuerdo_cod"]
<- impu_Recuerdo_cod2
M = 3
set.seed(2, sample.kind = "Rounding")
rfFit3_Recuerdo_cod
<- train(Recuerdo_cod ~ .,
method = "rf",
data = train2_Recuerdo_cod,
preProcess = c("center", "scale"),
tuneGrid
= expand.grid(mtry = c(2:10)),
trControl
= ctrl)
rfFit3_Recuerdo_cod
varImp(rfFit3_Recuerdo_cod)
plot(varImp(rfFit3_Recuerdo_cod), top = 10, col = "#41AE76", main = "M3")
rfFit3_Recuerdo_cod$finalModel
pred3_Recuerdo_cod
<- predict(rfFit3_Recuerdo_cod, test)
impu_Recuerdo_cod3
<- predict(rfFit3_Recuerdo_cod, impu_Recuerdo_cod)
table(pred3_Recuerdo_cod)
confusionMatrix(pred3_Recuerdo_cod[test$Recuerdo_cod!=99],test_Recuerdo_cod)
CM3_Recuerdo_cod
<- confusionMatrix(pred3_Recuerdo_cod[test$Recuerdo_cod!=99],test_Recuerdo_cod)$table
AC3_Recuerdo_cod
<- as.vector(confusionMatrix(pred3_Recuerdo_cod[test$Recuerdo_cod!=99],test_Recuerdo_cod)$overall[1])
M3[NA_Recuerdo_cod,"Recuerdo_cod"]
<- pred3_Recuerdo_cod[pos]
M3[NA_Recuerdo_cod_impu,"Recuerdo_cod"]
<- impu_Recuerdo_cod3
CMT_Recuerdo_cod
<- (CM1_Recuerdo_cod)
for(i in 1:nrow(CMT_Recuerdo_cod))
{
for(j in 1:ncol(CMT_Recuerdo_cod))
{
if((CM1_Recuerdo_cod[i,j]+CM2_Recuerdo_cod[i,j]+CM3_Recuerdo_cod[i,j])%%3
!= 0)
{
CMT_Recuerdo_cod[i,j]
= as.character(round((CM1_Recuerdo_cod[i,j]+CM2_Recuerdo_cod[i,j]+CM3_Recuerdo_cod[i,j])/3,2))
}else{
CMT_Recuerdo_cod[i,j]
= as.character(as.integer((CM1_Recuerdo_cod[i,j]+CM2_Recuerdo_cod[i,j]+CM3_Recuerdo_cod[i,j])/3))
}
}
}
CMT_Recuerdo_cod
= cbind(c(1:11),
CMT_Recuerdo_cod)
kable(CMT_Recuerdo_cod,
position = "center",
booktabs = TRUE, align
= "cccccc", caption
= "<left><em> Matriz de confusión Recuerdo de Voto
</em></center>", escape
= FALSE, col.names = c("Prediction",
"1","2","3",
"4", "5",
"6", "7",
"8", "9",
"10", "11"),
position = "center",
row_label_position = "c",
font_size = 15)%>%
kableExtra::footnote(symbol
= c("Al tomar la media de los elementos de las matrices de
confusión,
es posible que no se obtenga un
número entero"), threeparttable=T)%>%
kable_classic(full_width = F, html_font = "Times
New Roman")%>%
add_header_above(c(" " = 1, "Reference" = 1, "
" = 10))%>%
column_spec(1:12,
width = "1.2cm")
ACT_Recuerdo_cod
<- c(AC1_Recuerdo_cod,AC2_Recuerdo_cod,AC3_Recuerdo_cod)
ACM_Recuerdo_cod
<- mean(c(ACT_Recuerdo_cod))
ACSD_Recuerdo_cod
<- sqrt(var(ACT_Recuerdo_cod)/3)
-
Imputación de la clasificación
ideológica de Pedro Sánchez
# M = 1
train2_Ideologia_ps_cod
<- conjunto[conjunto[,"Ideologia_ps_cod"]!="99",]
impu_Ideologia_ps_cod
<- conjunto[conjunto[,"Ideologia_ps_cod"]=="99",]
dim(train2_Ideologia_ps_cod)[1]
dim(impu_Ideologia_ps_cod)[1]
table(train2_Ideologia_ps_cod$Ideologia_ps_cod)
train2_Ideologia_ps_cod[,"Ideologia_ps_cod"]
<- droplevels(train2_Ideologia_ps_cod[,"Ideologia_ps_cod"])
table(train2_Ideologia_ps_cod$Ideologia_ps_cod)
ctrl
<- trainControl(method = "cv", number = 5)
# RF train with
CV to optimize number of variables
#library(doMC)
#registerDoMC(cores
= 2)
set.seed(0, sample.kind = "Rounding")
rfFit_Ideologia_ps_cod
<- train(Ideologia_ps_cod ~ .,
method = "rf",
data = train2_Ideologia_ps_cod,
preProcess = c("center", "scale"),
tuneGrid =
expand.grid(mtry = c(2:10)),
trControl = ctrl)
rfFit_Ideologia_ps_cod
varImp(rfFit_Ideologia_ps_cod)
plot(varImp(rfFit_Ideologia_ps_cod), top = 10, col = "#74A9CF", main = "M1")
rfFit_Ideologia_ps_cod$finalModel
pred_Ideologia_ps_cod
<- predict(rfFit_Ideologia_ps_cod, test)
impu_Ideologia_ps_cod1
<- predict(rfFit_Ideologia_ps_cod, impu_Ideologia_ps_cod)
table(pred_Ideologia_ps_cod)
test_Ideologia_ps_cod
<- test$Ideologia_ps_cod[test$Ideologia_ps_cod!=99]
test_Ideologia_ps_cod
<- fct_drop(test_Ideologia_ps_cod, only = "99")
confusionMatrix(pred_Ideologia_ps_cod[test$Ideologia_ps_cod!=99],test_Ideologia_ps_cod)
CM1_Ideologia_ps_cod
<- confusionMatrix(pred_Ideologia_ps_cod[test$Ideologia_ps_cod!=99],test_Ideologia_ps_cod)$table
AC1_Ideologia_ps_cod
<- as.vector(confusionMatrix(pred_Ideologia_ps_cod[test$Ideologia_ps_cod!=99],test_Ideologia_ps_cod)$overall[1])
NA_Ideologia_ps_cod
<- as.numeric(rownames(test[test[,"Ideologia_ps_cod"]=='99',]))
pos =
c()
for(i in 1:nrow(test))
{
if(test[i,"Ideologia_ps_cod"]=="99")
{
pos=c(pos,i)
}
}
NA_Ideologia_ps_cod_impu
<- as.numeric(rownames(impu_Ideologia_ps_cod))
M1[NA_Ideologia_ps_cod,"Ideologia_ps_cod"]
<- pred_Ideologia_ps_cod[pos]
M1[NA_Ideologia_ps_cod_impu,"Ideologia_ps_cod"]
<- impu_Ideologia_ps_cod1
M = 2
set.seed(1, sample.kind = "Rounding")
rfFit2_Ideologia_ps_cod
<- train(Ideologia_ps_cod ~ .,
method = "rf",
data = train2_Ideologia_ps_cod,
preProcess = c("center", "scale"),
tuneGrid =
expand.grid(mtry = c(2:10)),
trControl = ctrl)
rfFit2_Ideologia_ps_cod
varImp(rfFit2_Ideologia_ps_cod)
plot(varImp(rfFit2_Ideologia_ps_cod), top = 10, col = "#0570B0", main = "M2")
rfFit2_Ideologia_ps_cod$finalModel
pred2_Ideologia_ps_cod
<- predict(rfFit2_Ideologia_ps_cod, test)
impu_Ideologia_ps_cod2
<- predict(rfFit2_Ideologia_ps_cod, impu_Ideologia_ps_cod)
table(pred2_Ideologia_ps_cod)
confusionMatrix(pred2_Ideologia_ps_cod[test$Ideologia_ps_cod!=99],test_Ideologia_ps_cod)
CM2_Ideologia_ps_cod
<- confusionMatrix(pred2_Ideologia_ps_cod[test$Ideologia_ps_cod!=99],test_Ideologia_ps_cod)$table
AC2_Ideologia_ps_cod
<- as.vector(confusionMatrix(pred2_Ideologia_ps_cod[test$Ideologia_ps_cod!=99],test_Ideologia_ps_cod)$overall[1])
M2[NA_Ideologia_ps_cod,"Ideologia_ps_cod"]
<- pred2_Ideologia_ps_cod[pos]
M2[NA_Ideologia_ps_cod_impu,"Ideologia_ps_cod"]
<- impu_Ideologia_ps_cod2
M = 3
set.seed(2, sample.kind = "Rounding")
rfFit3_Ideologia_ps_cod
<- train(Ideologia_ps_cod ~ .,
method = "rf",
data = train2_Ideologia_ps_cod,
preProcess = c("center", "scale"),
tuneGrid =
expand.grid(mtry = c(2:10)),
trControl = ctrl)
rfFit3_Ideologia_ps_cod
varImp(rfFit3_Ideologia_ps_cod)
plot(varImp(rfFit3_Ideologia_ps_cod), top = 10, col = "#41AE76", main = "M3")
rfFit3_Ideologia_ps_cod$finalModel
pred3_Ideologia_ps_cod
<- predict(rfFit3_Ideologia_ps_cod, test)
impu_Ideologia_ps_cod3
<- predict(rfFit3_Ideologia_ps_cod, impu_Ideologia_ps_cod)
table(pred3_Ideologia_ps_cod)
confusionMatrix(pred3_Ideologia_ps_cod[test$Ideologia_ps_cod!=99],test_Ideologia_ps_cod)
CM3_Ideologia_ps_cod
<- confusionMatrix(pred3_Ideologia_ps_cod[test$Ideologia_ps_cod!=99],test_Ideologia_ps_cod)$table
AC3_Ideologia_ps_cod
<- as.vector(confusionMatrix(pred3_Ideologia_ps_cod[test$Ideologia_ps_cod!=99],test_Ideologia_ps_cod)$overall[1])
M3[NA_Ideologia_ps_cod,"Ideologia_ps_cod"]
<- pred3_Ideologia_ps_cod[pos]
M3[NA_Ideologia_ps_cod_impu,"Ideologia_ps_cod"]
<- impu_Ideologia_ps_cod3
Matriz confusión
CMT_Ideologia_ps_cod
<- (CM1_Ideologia_ps_cod)
for(i in 1:nrow(CMT_Ideologia_ps_cod))
{
for(j in 1:ncol(CMT_Ideologia_ps_cod))
{
if((CM1_Ideologia_ps_cod[i,j]+CM2_Ideologia_ps_cod[i,j]+CM3_Ideologia_ps_cod[i,j])%%3 != 0)
{
CMT_Ideologia_ps_cod[i,j] =
as.character(round((CM1_Ideologia_ps_cod[i,j]+CM2_Ideologia_ps_cod[i,j]+CM3_Ideologia_ps_cod[i,j])/3,2))
}else{
CMT_Ideologia_ps_cod[i,j] =
as.character(as.integer((CM1_Ideologia_ps_cod[i,j]+CM2_Ideologia_ps_cod[i,j]+CM3_Ideologia_ps_cod[i,j])/3))
}
}
}
CMT_Ideologia_ps_cod =
cbind(c(1:11), CMT_Ideologia_ps_cod)
kable(CMT_Ideologia_ps_cod, position = "center", booktabs = TRUE, align = "cccccc", caption = "<left><em>
Matriz de confusión Clasificación ideológica Pedro Sánchez
</em></center>", escape = FALSE, col.names = c("Prediction", "1","2","3", "4", "5", "6", "7", "8", "9", "10", "11"), position = "center", row_label_position = "c", font_size = 15)%>%
kableExtra::footnote(symbol
= c("Al tomar la media de los elementos de las matrices de confusión,
es posible que no se
obtenga un número entero"), threeparttable=T)%>%
kable_classic(full_width = F, html_font = "Times
New Roman")%>%
add_header_above(c(" " = 1, "Reference" = 1, "
" = 10))%>%
column_spec(1:12, width = "1.2cm")
ACT_Ideologia_ps_cod
<- c(AC1_Ideologia_ps_cod,AC2_Ideologia_ps_cod,AC3_Ideologia_ps_cod)
ACM_Ideologia_ps_cod
<- mean(c(ACT_Ideologia_ps_cod))
ACSD_Ideologia_ps_cod
<- sqrt(var(ACT_Ideologia_ps_cod)/3)
-
Imputación de la clasificación ideológica de Santiago Abascal
# M = 1
train2_Ideologia_sa_cod
<- conjunto[conjunto[,"Ideologia_sa_cod"]!="99",]
impu_Ideologia_sa_cod
<- conjunto[conjunto[,"Ideologia_sa_cod"]=="99",]
dim(train2_Ideologia_sa_cod)[1]
dim(impu_Ideologia_sa_cod)[1]
table(train2_Ideologia_sa_cod$Ideologia_sa_cod)
train2_Ideologia_sa_cod[,"Ideologia_sa_cod"]
<- droplevels(train2_Ideologia_sa_cod[,"Ideologia_sa_cod"])
table(train2_Ideologia_sa_cod$Ideologia_sa_cod)
ctrl
<- trainControl(method = "cv", number = 5)
# RF train with
CV to optimize number of variables
#library(doMC)
#registerDoMC(cores
= 2)
set.seed(0, sample.kind = "Rounding")
rfFit_Ideologia_sa_cod
<- train(Ideologia_sa_cod ~ .,
method = "rf",
data = train2_Ideologia_sa_cod,
preProcess = c("center", "scale"),
tuneGrid =
expand.grid(mtry = c(2:10)),
trControl = ctrl)
rfFit_Ideologia_sa_cod
varImp(rfFit_Ideologia_sa_cod)
plot(varImp(rfFit_Ideologia_sa_cod), top = 10, col = "#74A9CF", main = "M1")
rfFit_Ideologia_sa_cod$finalModel
pred_Ideologia_sa_cod
<- predict(rfFit_Ideologia_sa_cod, test)
impu_Ideologia_sa_cod1
<- predict(rfFit_Ideologia_sa_cod, impu_Ideologia_sa_cod)
table(pred_Ideologia_sa_cod)
test_Ideologia_sa_cod
<- test$Ideologia_sa_cod[test$Ideologia_sa_cod!=99]
test_Ideologia_sa_cod
<- fct_drop(test_Ideologia_sa_cod, only = "99")
confusionMatrix(pred_Ideologia_sa_cod[test$Ideologia_sa_cod!=99],test_Ideologia_sa_cod)
CM1_Ideologia_sa_cod
<- confusionMatrix(pred_Ideologia_sa_cod[test$Ideologia_sa_cod!=99],test_Ideologia_sa_cod)$table
AC1_Ideologia_sa_cod
<- as.vector(confusionMatrix(pred_Ideologia_sa_cod[test$Ideologia_sa_cod!=99],test_Ideologia_sa_cod)$overall[1])
NA_Ideologia_sa_cod
<- as.numeric(rownames(test[test[,"Ideologia_sa_cod"]=='99',]))
pos =
c()
for(i in 1:nrow(test))
{
if(test[i,"Ideologia_sa_cod"]=="99")
{
pos=c(pos,i)
}
}
NA_Ideologia_sa_cod_impu
<- as.numeric(rownames(impu_Ideologia_sa_cod))
M1[NA_Ideologia_sa_cod,"Ideologia_sa_cod"]
<- pred_Ideologia_sa_cod[pos]
M1[NA_Ideologia_sa_cod_impu,"Ideologia_sa_cod"]
<- impu_Ideologia_sa_cod1
M = 2
set.seed(1, sample.kind = "Rounding")
rfFit2_Ideologia_sa_cod
<- train(Ideologia_sa_cod ~ .,
method = "rf",
data = train2_Ideologia_sa_cod,
preProcess = c("center", "scale"),
tuneGrid =
expand.grid(mtry = c(2:10)),
trControl = ctrl)
rfFit2_Ideologia_sa_cod
varImp(rfFit2_Ideologia_sa_cod)
plot(varImp(rfFit2_Ideologia_sa_cod), top = 10, col = "#0570B0", main = "M2")
rfFit2_Ideologia_sa_cod$finalModel
pred2_Ideologia_sa_cod
<- predict(rfFit2_Ideologia_sa_cod, test)
impu_Ideologia_sa_cod2
<- predict(rfFit2_Ideologia_sa_cod, impu_Ideologia_sa_cod)
table(pred2_Ideologia_sa_cod)
confusionMatrix(pred2_Ideologia_sa_cod[test$Ideologia_sa_cod!=99],test_Ideologia_sa_cod)
CM2_Ideologia_sa_cod
<- confusionMatrix(pred2_Ideologia_sa_cod[test$Ideologia_sa_cod!=99],test_Ideologia_sa_cod)$table
AC2_Ideologia_sa_cod
<- as.vector(confusionMatrix(pred2_Ideologia_sa_cod[test$Ideologia_sa_cod!=99],test_Ideologia_sa_cod)$overall[1])
M2[NA_Ideologia_sa_cod,"Ideologia_sa_cod"]
<- pred2_Ideologia_sa_cod[pos]
M2[NA_Ideologia_sa_cod_impu,"Ideologia_sa_cod"]
<- impu_Ideologia_sa_cod2
M = 3
set.seed(2, sample.kind = "Rounding")
rfFit3_Ideologia_sa_cod
<- train(Ideologia_sa_cod ~ .,
method = "rf",
data = train2_Ideologia_sa_cod,
preProcess = c("center", "scale"),
tuneGrid =
expand.grid(mtry = c(2:10)),
trControl = ctrl)
rfFit3_Ideologia_sa_cod
varImp(rfFit3_Ideologia_sa_cod)
plot(varImp(rfFit3_Ideologia_sa_cod), top = 10, col = "#41AE76", main = "M3")
rfFit3_Ideologia_sa_cod$finalModel
pred3_Ideologia_sa_cod
<- predict(rfFit3_Ideologia_sa_cod, test)
impu_Ideologia_sa_cod3
<- predict(rfFit3_Ideologia_sa_cod, impu_Ideologia_sa_cod)
table(pred3_Ideologia_sa_cod)
confusionMatrix(pred3_Ideologia_sa_cod[test$Ideologia_sa_cod!=99],test_Ideologia_sa_cod)
CM3_Ideologia_sa_cod
<- confusionMatrix(pred3_Ideologia_sa_cod[test$Ideologia_sa_cod!=99],test_Ideologia_sa_cod)$table
AC3_Ideologia_sa_cod
<- as.vector(confusionMatrix(pred3_Ideologia_sa_cod[test$Ideologia_sa_cod!=99],test_Ideologia_sa_cod)$overall[1])
M3[NA_Ideologia_sa_cod,"Ideologia_sa_cod"]
<- pred3_Ideologia_sa_cod[pos]
M3[NA_Ideologia_sa_cod_impu,"Ideologia_sa_cod"]
<- impu_Ideologia_sa_cod3
Matriz confusión
CMT_Ideologia_sa_cod
<- (CM1_Ideologia_sa_cod)
for(i in 1:nrow(CMT_Ideologia_sa_cod))
{
for(j in 1:ncol(CMT_Ideologia_sa_cod))
{
if((CM1_Ideologia_sa_cod[i,j]+CM2_Ideologia_sa_cod[i,j]+CM3_Ideologia_sa_cod[i,j])%%3 != 0)
{
CMT_Ideologia_sa_cod[i,j] =
as.character(round((CM1_Ideologia_sa_cod[i,j]+CM2_Ideologia_sa_cod[i,j]+CM3_Ideologia_sa_cod[i,j])/3,2))
}else{
CMT_Ideologia_sa_cod[i,j] =
as.character(as.integer((CM1_Ideologia_sa_cod[i,j]+CM2_Ideologia_sa_cod[i,j]+CM3_Ideologia_sa_cod[i,j])/3))
}
}
}
CMT_Ideologia_sa_cod =
cbind(c(1:11), CMT_Ideologia_sa_cod)
kable(CMT_Ideologia_sa_cod, position = "center", booktabs = TRUE, align = "cccccc", caption = "<left><em>
Matriz de confusión Clasificación ideológica Santaigo Abascal </em></center>", escape = FALSE, col.names = c("Prediction", "1","2","3", "4", "5", "6", "7", "8", "9", "10", "11"), position = "center", row_label_position = "c", font_size = 15)%>%
kableExtra::footnote(symbol
= c("Al tomar la media de los elementos de las matrices de confusión,
es posible que no se
obtenga un número entero"), threeparttable=T)%>%
kable_classic(full_width = F, html_font = "Times
New Roman")%>%
add_header_above(c(" " = 1, "Reference" = 1, "
" = 10))%>%
column_spec(1:12, width = "1.2cm")
ACT_Ideologia_sa_cod
<- c(AC1_Ideologia_sa_cod,AC2_Ideologia_sa_cod,AC3_Ideologia_sa_cod)
ACM_Ideologia_sa_cod
<- mean(c(ACT_Ideologia_sa_cod))
ACSD_Ideologia_sa_cod
<- sqrt(var(ACT_Ideologia_sa_cod)/3)
-
Imputación de la clasificación ideológica de Pablo Iglesias
# M = 1
train2_Ideologia_pi_cod
<- conjunto[conjunto[,"Ideologia_pi_cod"]!="99",]
impu_Ideologia_pi_cod
<- conjunto[conjunto[,"Ideologia_pi_cod"]=="99",]
dim(train2_Ideologia_pi_cod)[1]
dim(impu_Ideologia_pi_cod)[1]
table(train2_Ideologia_pi_cod$Ideologia_pi_cod)
train2_Ideologia_pi_cod[,"Ideologia_pi_cod"]
<- droplevels(train2_Ideologia_pi_cod[,"Ideologia_pi_cod"])
table(train2_Ideologia_pi_cod$Ideologia_pi_cod)
ctrl
<- trainControl(method = "cv", number = 5)
# RF train with
CV to optimize number of variables
#library(doMC)
#registerDoMC(cores
= 2)
set.seed(0, sample.kind = "Rounding")
rfFit_Ideologia_pi_cod
<- train(Ideologia_pi_cod ~ .,
method = "rf",
data = train2_Ideologia_pi_cod,
preProcess = c("center", "scale"),
tuneGrid =
expand.grid(mtry = c(2:10)),
trControl = ctrl)
rfFit_Ideologia_pi_cod
varImp(rfFit_Ideologia_pi_cod)
plot(varImp(rfFit_Ideologia_pi_cod), top = 10, col = "#74A9CF", main = "M2")
rfFit_Ideologia_pi_cod$finalModel
pred_Ideologia_pi_cod
<- predict(rfFit_Ideologia_pi_cod, test)
impu_Ideologia_pi_cod1
<- predict(rfFit_Ideologia_pi_cod, impu_Ideologia_pi_cod)
table(pred_Ideologia_pi_cod)
test_Ideologia_pi_cod
<- test$Ideologia_pi_cod[test$Ideologia_pi_cod!=99]
test_Ideologia_pi_cod
<- fct_drop(test_Ideologia_pi_cod, only = "99")
confusionMatrix(pred_Ideologia_pi_cod[test$Ideologia_pi_cod!=99],test_Ideologia_pi_cod)
CM1_Ideologia_pi_cod
<- confusionMatrix(pred_Ideologia_pi_cod[test$Ideologia_pi_cod!=99],test_Ideologia_pi_cod)$table
AC1_Ideologia_pi_cod
<- as.vector(confusionMatrix(pred_Ideologia_pi_cod[test$Ideologia_pi_cod!=99],test_Ideologia_pi_cod)$overall[1])
NA_Ideologia_pi_cod
<- as.numeric(rownames(test[test[,"Ideologia_pi_cod"]=='99',]))
pos =
c()
for(i in 1:nrow(test))
{
if(test[i,"Ideologia_pi_cod"]=="99")
{
pos=c(pos,i)
}
}
NA_Ideologia_pi_cod_impu
<- as.numeric(rownames(impu_Ideologia_pi_cod))
M1[NA_Ideologia_pi_cod,"Ideologia_pi_cod"]
<- pred_Ideologia_pi_cod[pos]
M1[NA_Ideologia_pi_cod_impu,"Ideologia_pi_cod"]
<- impu_Ideologia_pi_cod1
M = 2
set.seed(1, sample.kind = "Rounding")
rfFit2_Ideologia_pi_cod
<- train(Ideologia_pi_cod ~ .,
method = "rf",
data = train2_Ideologia_pi_cod,
preProcess = c("center", "scale"),
tuneGrid =
expand.grid(mtry = c(2:10)),
trControl = ctrl)
rfFit2_Ideologia_pi_cod
varImp(rfFit2_Ideologia_pi_cod)
plot(varImp(rfFit2_Ideologia_pi_cod), top = 10, col = "#0570B0", main = "M2")
rfFit2_Ideologia_pi_cod$finalModel
pred2_Ideologia_pi_cod
<- predict(rfFit2_Ideologia_pi_cod, test)
impu_Ideologia_pi_cod2
<- predict(rfFit2_Ideologia_pi_cod, impu_Ideologia_pi_cod)
table(pred2_Ideologia_pi_cod)
confusionMatrix(pred2_Ideologia_pi_cod[test$Ideologia_pi_cod!=99],test_Ideologia_pi_cod)
CM2_Ideologia_pi_cod
<- confusionMatrix(pred2_Ideologia_pi_cod[test$Ideologia_pi_cod!=99],test_Ideologia_pi_cod)$table
AC2_Ideologia_pi_cod
<- as.vector(confusionMatrix(pred2_Ideologia_pi_cod[test$Ideologia_pi_cod!=99],test_Ideologia_pi_cod)$overall[1])
M2[NA_Ideologia_pi_cod,"Ideologia_pi_cod"]
<- pred2_Ideologia_pi_cod[pos]
M2[NA_Ideologia_pi_cod_impu,"Ideologia_pi_cod"]
<- impu_Ideologia_pi_cod2
M = 3
set.seed(2, sample.kind = "Rounding")
rfFit3_Ideologia_pi_cod
<- train(Ideologia_pi_cod ~ .,
method = "rf",
data = train2_Ideologia_pi_cod,
preProcess = c("center", "scale"),
tuneGrid =
expand.grid(mtry = c(2:10)),
trControl = ctrl)
rfFit3_Ideologia_pi_cod
varImp(rfFit3_Ideologia_pi_cod)
plot(varImp(rfFit3_Ideologia_pi_cod), top = 10, col = "#41AE76", main = "M3")
rfFit3_Ideologia_pi_cod$finalModel
pred3_Ideologia_pi_cod
<- predict(rfFit3_Ideologia_pi_cod, test)
impu_Ideologia_pi_cod3
<- predict(rfFit3_Ideologia_pi_cod, impu_Ideologia_pi_cod)
table(pred3_Ideologia_pi_cod)
confusionMatrix(pred3_Ideologia_pi_cod[test$Ideologia_pi_cod!=99],test_Ideologia_pi_cod)
CM3_Ideologia_pi_cod
<- confusionMatrix(pred3_Ideologia_pi_cod[test$Ideologia_pi_cod!=99],test_Ideologia_pi_cod)$table
AC3_Ideologia_pi_cod
<- as.vector(confusionMatrix(pred3_Ideologia_pi_cod[test$Ideologia_pi_cod!=99],test_Ideologia_pi_cod)$overall[1])
M3[NA_Ideologia_pi_cod,"Ideologia_pi_cod"]
<- pred3_Ideologia_pi_cod[pos]
M3[NA_Ideologia_pi_cod_impu,"Ideologia_pi_cod"]
<- impu_Ideologia_pi_cod3
Matriz Confusión
CMT_Ideologia_pi_cod
<- (CM1_Ideologia_pi_cod)
for(i in 1:nrow(CMT_Ideologia_pi_cod))
{
for(j in 1:ncol(CMT_Ideologia_pi_cod))
{
if((CM1_Ideologia_pi_cod[i,j]+CM2_Ideologia_pi_cod[i,j]+CM3_Ideologia_pi_cod[i,j])%%3 != 0)
{
CMT_Ideologia_pi_cod[i,j] =
as.character(round((CM1_Ideologia_pi_cod[i,j]+CM2_Ideologia_pi_cod[i,j]+CM3_Ideologia_pi_cod[i,j])/3,2))
}else{
CMT_Ideologia_pi_cod[i,j] =
as.character(as.integer((CM1_Ideologia_pi_cod[i,j]+CM2_Ideologia_pi_cod[i,j]+CM3_Ideologia_pi_cod[i,j])/3))
}
}
}
CMT_Ideologia_pi_cod =
cbind(c(1:11), CMT_Ideologia_pi_cod)
kable(CMT_Ideologia_pi_cod, position = "center", booktabs = TRUE, align = "cccccc", caption = "<left><em>
Matriz de confusión Clasificación ideológica Pablo Iglesias
</em></center>", escape = FALSE, col.names = c("Prediction", "1","2","3", "4", "5", "6", "7", "8", "9", "10", "11"), position = "center", row_label_position = "c", font_size = 15)%>%
kableExtra::footnote(symbol
= c("Al tomar la media de los elementos de las matrices de confusión,
es posible que no se
obtenga un número entero"), threeparttable=T)%>%
kable_classic(full_width = F, html_font = "Times
New Roman")%>%
add_header_above(c(" " = 1, "Reference" = 1, "
" = 10))%>%
column_spec(1:12, width = "1.2cm")
ACT_Ideologia_pi_cod
<- c(AC1_Ideologia_pi_cod,AC2_Ideologia_pi_cod,AC3_Ideologia_pi_cod)
ACM_Ideologia_pi_cod
<- mean(c(ACT_Ideologia_pi_cod))
ACSD_Ideologia_pi_cod
<- sqrt(var(ACT_Ideologia_pi_cod)/3)
-
Imputación de la clasificación ideológica de Inés Arrimadas
# M = 1
train2_Ideologia_ia_cod
<- conjunto[conjunto[,"Ideologia_ia_cod"]!="99",]
impu_Ideologia_ia_cod
<- conjunto[conjunto[,"Ideologia_ia_cod"]=="99",]
dim(train2_Ideologia_ia_cod)[1]
dim(impu_Ideologia_ia_cod)[1]
table(train2_Ideologia_ia_cod$Ideologia_ia_cod)
train2_Ideologia_ia_cod[,"Ideologia_ia_cod"]
<- droplevels(train2_Ideologia_ia_cod[,"Ideologia_ia_cod"])
table(train2_Ideologia_ia_cod$Ideologia_ia_cod)
ctrl
<- trainControl(method = "cv", number = 5)
# RF train with
CV to optimize number of variables
#library(doMC)
#registerDoMC(cores
= 2)
set.seed(0, sample.kind = "Rounding")
rfFit_Ideologia_ia_cod
<- train(Ideologia_ia_cod ~ .,
method = "rf",
data = train2_Ideologia_ia_cod,
preProcess = c("center", "scale"),
tuneGrid =
expand.grid(mtry = c(2:10)),
trControl = ctrl)
rfFit_Ideologia_ia_cod
varImp(rfFit_Ideologia_ia_cod)
plot(varImp(rfFit_Ideologia_ia_cod), top = 10, col = "#74A9CF", main = "M1")
rfFit_Ideologia_ia_cod$finalModel
pred_Ideologia_ia_cod
<- predict(rfFit_Ideologia_ia_cod, test)
impu_Ideologia_ia_cod1
<- predict(rfFit_Ideologia_ia_cod, impu_Ideologia_ia_cod)
table(pred_Ideologia_ia_cod)
test_Ideologia_ia_cod
<- test$Ideologia_ia_cod[test$Ideologia_ia_cod!=99]
test_Ideologia_ia_cod
<- fct_drop(test_Ideologia_ia_cod, only = "99")
confusionMatrix(pred_Ideologia_ia_cod[test$Ideologia_ia_cod!=99],test_Ideologia_ia_cod)
CM1_Ideologia_ia_cod
<- confusionMatrix(pred_Ideologia_ia_cod[test$Ideologia_ia_cod!=99],test_Ideologia_ia_cod)$table
AC1_Ideologia_ia_cod
<- as.vector(confusionMatrix(pred_Ideologia_ia_cod[test$Ideologia_ia_cod!=99],test_Ideologia_ia_cod)$overall[1])
NA_Ideologia_ia_cod
<- as.numeric(rownames(test[test[,"Ideologia_ia_cod"]=='99',]))
pos =
c()
for(i in 1:nrow(test))
{
if(test[i,"Ideologia_ia_cod"]=="99")
{
pos=c(pos,i)
}
}
NA_Ideologia_ia_cod_impu
<- as.numeric(rownames(impu_Ideologia_ia_cod))
M1[NA_Ideologia_ia_cod,"Ideologia_ia_cod"]
<- pred_Ideologia_ia_cod[pos]
M1[NA_Ideologia_ia_cod_impu,"Ideologia_ia_cod"]
<- impu_Ideologia_ia_cod1
M = 2
set.seed(1, sample.kind = "Rounding")
rfFit2_Ideologia_ia_cod
<- train(Ideologia_ia_cod ~ .,
method = "rf",
data = train2_Ideologia_ia_cod,
preProcess = c("center", "scale"),
tuneGrid =
expand.grid(mtry = c(2:10)),
trControl = ctrl)
rfFit2_Ideologia_ia_cod
varImp(rfFit2_Ideologia_ia_cod)
plot(varImp(rfFit2_Ideologia_ia_cod), top = 10, col = "#0570B0", main = "M2")
rfFit2_Ideologia_ia_cod$finalModel
pred2_Ideologia_ia_cod
<- predict(rfFit2_Ideologia_ia_cod, test)
impu_Ideologia_ia_cod2
<- predict(rfFit2_Ideologia_ia_cod, impu_Ideologia_ia_cod)
table(pred2_Ideologia_ia_cod)
confusionMatrix(pred2_Ideologia_ia_cod[test$Ideologia_ia_cod!=99],test_Ideologia_ia_cod)
CM2_Ideologia_ia_cod
<- confusionMatrix(pred2_Ideologia_ia_cod[test$Ideologia_ia_cod!=99],test_Ideologia_ia_cod)$table
AC2_Ideologia_ia_cod
<- as.vector(confusionMatrix(pred2_Ideologia_ia_cod[test$Ideologia_ia_cod!=99],test_Ideologia_ia_cod)$overall[1])
M2[NA_Ideologia_ia_cod,"Ideologia_ia_cod"]
<- pred2_Ideologia_ia_cod[pos]
M2[NA_Ideologia_ia_cod_impu,"Ideologia_ia_cod"]
<- impu_Ideologia_ia_cod2
M = 3
set.seed(2, sample.kind = "Rounding")
rfFit3_Ideologia_ia_cod
<- train(Ideologia_ia_cod ~ .,
method = "rf",
data = train2_Ideologia_ia_cod,
preProcess = c("center", "scale"),
tuneGrid =
expand.grid(mtry = c(2:10)),
trControl = ctrl)
rfFit3_Ideologia_ia_cod
varImp(rfFit3_Ideologia_ia_cod)
plot(varImp(rfFit3_Ideologia_ia_cod), top = 10, col = "#41AE76", main = "M3")
rfFit3_Ideologia_ia_cod$finalModel
pred3_Ideologia_ia_cod
<- predict(rfFit3_Ideologia_ia_cod, test)
impu_Ideologia_ia_cod3
<- predict(rfFit3_Ideologia_ia_cod, impu_Ideologia_ia_cod)
table(pred3_Ideologia_ia_cod)
confusionMatrix(pred3_Ideologia_ia_cod[test$Ideologia_ia_cod!=99],test_Ideologia_ia_cod)
CM3_Ideologia_ia_cod
<- confusionMatrix(pred3_Ideologia_ia_cod[test$Ideologia_ia_cod!=99],test_Ideologia_ia_cod)$table
AC3_Ideologia_ia_cod
<- as.vector(confusionMatrix(pred3_Ideologia_ia_cod[test$Ideologia_ia_cod!=99],test_Ideologia_ia_cod)$overall[1])
M3[NA_Ideologia_ia_cod,"Ideologia_ia_cod"]
<- pred3_Ideologia_ia_cod[pos]
M3[NA_Ideologia_ia_cod_impu,"Ideologia_ia_cod"]
<- impu_Ideologia_ia_cod3
Matriz Confusión
CMT_Ideologia_ia_cod
<- (CM1_Ideologia_ia_cod)
for(i in 1:nrow(CMT_Ideologia_ia_cod))
{
for(j in 1:ncol(CMT_Ideologia_ia_cod))
{
if((CM1_Ideologia_ia_cod[i,j]+CM2_Ideologia_ia_cod[i,j]+CM3_Ideologia_ia_cod[i,j])%%3 != 0)
{
CMT_Ideologia_ia_cod[i,j] =
as.character(round((CM1_Ideologia_ia_cod[i,j]+CM2_Ideologia_ia_cod[i,j]+CM3_Ideologia_ia_cod[i,j])/3,2))
}else{
CMT_Ideologia_ia_cod[i,j] =
as.character(as.integer((CM1_Ideologia_ia_cod[i,j]+CM2_Ideologia_ia_cod[i,j]+CM3_Ideologia_ia_cod[i,j])/3))
}
}
}
CMT_Ideologia_ia_cod =
cbind(c(1:11), CMT_Ideologia_ia_cod)
kable(CMT_Ideologia_ia_cod, position = "center", booktabs = TRUE, align = "cccccc", caption = "<left><em>
Matriz de confusión Clasificación ideológica Inés Arrimadas
</em></center>", escape = FALSE, col.names = c("Prediction", "1","2","3", "4", "5", "6", "7", "8", "9", "10", "11"), position = "center", row_label_position = "c", font_size = 15)%>%
kableExtra::footnote(symbol
= c("Al tomar la media de los elementos de las matrices de confusión,
es posible que no se
obtenga un número entero"), threeparttable=T)%>%
kable_classic(full_width = F, html_font = "Times
New Roman")%>%
add_header_above(c(" " = 1, "Reference" = 1, "
" = 10))%>%
column_spec(1:12, width = "1.2cm")
ACT_Ideologia_ia_cod
<- c(AC1_Ideologia_ia_cod,AC2_Ideologia_ia_cod,AC3_Ideologia_ia_cod)
ACM_Ideologia_ia_cod
<- mean(c(ACT_Ideologia_ia_cod))
ACSD_Ideologia_ia_cod
<- sqrt(var(ACT_Ideologia_ia_cod)/3)
-
Imputación de la intención de voto
# M = 1
train2_Voto_cod
<- conjunto[conjunto[,"Voto_cod"]!="99",]
impu_Voto_cod
<- conjunto[conjunto[,"Voto_cod"]=="99",]
dim(train2_Voto_cod)[1]
dim(impu_Voto_cod)[1]
table(train2_Voto_cod$Voto_cod)
train2_Voto_cod[,"Voto_cod"]
<- droplevels(train2_Voto_cod[,"Voto_cod"])
table(train2_Voto_cod$Voto_cod)
ctrl
<- trainControl(method = "cv", number = 5)
# RF train with
CV to optimize number of variables
#library(doMC)
#registerDoMC(cores
= 2)
set.seed(0, sample.kind = "Rounding")
rfFit_Voto_cod
<- train(Voto_cod ~ .,
method = "rf",
data = train2_Voto_cod,
preProcess = c("center", "scale"),
tuneGrid =
expand.grid(mtry = c(2:10)),
trControl = ctrl)
rfFit_Voto_cod
varImp(rfFit_Voto_cod)
plot(varImp(rfFit_Voto_cod), top = 10, col = "#74A9CF", main = "M1")
rfFit_Voto_cod$finalModel
pred_Voto_cod
<- predict(rfFit_Voto_cod, test)
impu_Voto_cod1
<- predict(rfFit_Voto_cod, impu_Voto_cod)
table(pred_Voto_cod)
test_Voto_cod
<- test$Voto_cod[test$Voto_cod!=99]
test_Voto_cod
<- droplevels(test_Voto_cod)
confusionMatrix(pred_Voto_cod[test$Voto_cod!=99],test_Voto_cod)
CM1_Voto_cod
<- confusionMatrix(pred_Voto_cod[test$Voto_cod!=99],test_Voto_cod)$table
AC1_Voto_cod
<- as.vector(confusionMatrix(pred_Voto_cod[test$Voto_cod!=99],test_Voto_cod)$overall[1])
NA_Voto_cod
<- as.numeric(rownames(test[test[,"Voto_cod"]=='99',]))
pos =
c()
for(i in 1:nrow(test))
{
if(test[i,"Voto_cod"]=="99")
{
pos=c(pos,i)
}
}
NA_Voto_cod_impu
<- as.numeric(rownames(impu_Voto_cod))
M1[NA_Voto_cod,"Voto_cod"]
<- pred_Voto_cod[pos]
M1[NA_Voto_cod_impu,"Voto_cod"]
<- impu_Voto_cod1
M = 2
set.seed(1, sample.kind = "Rounding")
rfFit2_Voto_cod
<- train(Voto_cod ~ .,
method = "rf",
data = train2_Voto_cod,
preProcess = c("center", "scale"),
tuneGrid =
expand.grid(mtry = c(2:10)),
trControl = ctrl)
rfFit2_Voto_cod
varImp(rfFit2_Voto_cod)
plot(varImp(rfFit2_Voto_cod), top = 10, col = "#0570B0", main = "M2")
rfFit2_Voto_cod$finalModel
pred2_Voto_cod
<- predict(rfFit2_Voto_cod, test)
impu_Voto_cod2
<- predict(rfFit2_Voto_cod, impu_Voto_cod)
table(pred2_Voto_cod)
confusionMatrix(pred2_Voto_cod[test$Voto_cod!=99],test_Voto_cod)
CM2_Voto_cod
<- confusionMatrix(pred2_Voto_cod[test$Voto_cod!=99],test_Voto_cod)$table
AC2_Voto_cod
<- as.vector(confusionMatrix(pred2_Voto_cod[test$Voto_cod!=99],test_Voto_cod)$overall[1])
M2[NA_Voto_cod,"Voto_cod"]
<- pred2_Voto_cod[pos]
M2[NA_Voto_cod_impu,"Voto_cod"]
<- impu_Voto_cod2
M = 3
set.seed(2, sample.kind = "Rounding")
rfFit3_Voto_cod
<- train(Voto_cod ~ .,
method = "rf",
data = train2_Voto_cod,
preProcess = c("center", "scale"),
tuneGrid =
expand.grid(mtry = c(2:10)),
trControl = ctrl)
rfFit3_Voto_cod
plot(varImp(rfFit3_Voto_cod), top = 10, col = "#41AE76", main = "M3")
rfFit3_Voto_cod$finalModel
pred3_Voto_cod
<- predict(rfFit3_Voto_cod, test)
impu_Voto_cod3
<- predict(rfFit3_Voto_cod, impu_Voto_cod)
table(pred3_Voto_cod)
confusionMatrix(pred3_Voto_cod[test$Voto_cod!=99],test_Voto_cod)
CM3_Voto_cod
<- confusionMatrix(pred3_Voto_cod[test$Voto_cod!=99],test_Voto_cod)$table
AC3_Voto_cod
<- as.vector(confusionMatrix(pred3_Voto_cod[test$Voto_cod!=99],test_Voto_cod)$overall[1])
M3[NA_Voto_cod,"Voto_cod"]
<- pred3_Voto_cod[pos]
M3[NA_Voto_cod_impu,"Voto_cod"]
<- impu_Voto_cod3
Matriz Confusion
CMT_Voto_cod
<- (CM1_Voto_cod)
for(i in 1:nrow(CMT_Voto_cod))
{
for(j in 1:ncol(CMT_Voto_cod))
{
if((CM1_Voto_cod[i,j]+CM2_Voto_cod[i,j]+CM3_Voto_cod[i,j])%%3 != 0)
{
CMT_Voto_cod[i,j] =
as.character(round((CM1_Voto_cod[i,j]+CM2_Voto_cod[i,j]+CM3_Voto_cod[i,j])/3,2))
}else{
CMT_Voto_cod[i,j] =
as.character(as.integer((CM1_Voto_cod[i,j]+CM2_Voto_cod[i,j]+CM3_Voto_cod[i,j])/3))
}
}
}
CMT_Voto_cod
= cbind(c(1:10),
CMT_Voto_cod)
CM1_Voto_cod
= cbind(c(1:10),
CM1_Voto_cod)
CM2_Voto_cod
= cbind(c(1:10),
CM2_Voto_cod)
CM3_Voto_cod
= cbind(c(1:10),
CM3_Voto_cod)
kable(CMT_Voto_cod,
position = "center",
booktabs = TRUE, align
= "cccccc", caption
= "<left><em> Matriz de confusión Intención de Voto
</em></center>", escape
= FALSE, col.names = c("Prediction",
"1","2","3",
"4", "5",
"6", "7",
"8", "9",
"10"), table.attr
= "style='width:30%;'")%>%
kable_styling(full_width = FALSE, position = "center", row_label_position = "c", font_size = 15, latex_options="scale_down")%>%
kable_classic(full_width = F, html_font = "Times
New Roman")%>%
add_header_above(c(" " = 1, "Reference" = 1, "
" = 9))%>%
column_spec(1:11,
width = "1.2cm")%>%
kableExtra::footnote(symbol
= c("Al tomar la media de los elementos de las matrices de confusión,
es posible que no se obtenga un número entero"), threeparttable=T)
kable(CM1_Voto_cod,
position = "center",
booktabs = TRUE, align
= "cccccc", caption
= "<left><em> Matriz de confusión Intención de Voto 1ª
imputación </em></center>", escape
= FALSE, col.names = c("Prediction",
"1","2","3",
"4", "5",
"6", "7",
"8", "9",
"10"), position
= "center")%>%
kable_classic(full_width = F, html_font = "Times
New Roman")%>%
add_header_above(c(" " = 1, "Reference" = 1, "
" = 9))%>%
column_spec(1:11, width = "1.2cm")
kable(CM2_Voto_cod, position = "center", booktabs = TRUE, align = "cccccc", caption = "<left><em>
Matriz de confusión Intención de Voto 2ª imputación
</em></center>", escape = FALSE, col.names = c("Prediction", "1","2","3", "4", "5", "6", "7", "8", "9", "10"),position = "center")%>%
kable_classic(full_width = F, html_font = "Times
New Roman")%>%
add_header_above(c(" " = 1, "Reference" = 1, "
" = 9))%>%
column_spec(1:11, width = "1.2cm")
kable(CM3_Voto_cod, position = "center", booktabs = TRUE, align = "cccccc", caption = "<left><em>
Matriz de confusión Intención de Voto 3ª imputación </em></center>", escape = FALSE, col.names = c("Prediction", "1","2","3", "4", "5", "6", "7", "8", "9", "10"), position = "center")%>%
kable_classic(full_width = F, html_font = "Times
New Roman")%>%
add_header_above(c(" " = 1, "Reference" = 1, "
" = 9))%>%
column_spec(1:11, width = "1.2cm")
ACT_Voto_cod
<- c(AC1_Voto_cod,AC2_Voto_cod,AC3_Voto_cod)
ACM_Voto_cod
<- mean(c(ACT_Voto_cod))
ACSD_Voto_cod
<- sqrt(var(ACT_Voto_cod)/3)
-
Imputación de la intención de voto alternativo
# M = 1
train2_Voto_alternativo_cod
<- conjunto[conjunto[,"Voto_alternativo_cod"]!="99",]
impu_Voto_alternativo_cod
<- conjunto[conjunto[,"Voto_alternativo_cod"]=="99",]
dim(train2_Voto_alternativo_cod)[1]
dim(impu_Voto_alternativo_cod)[1]
table(train2_Voto_alternativo_cod$Voto_alternativo_cod)
train2_Voto_alternativo_cod[,"Voto_alternativo_cod"]
<- droplevels(train2_Voto_alternativo_cod[,"Voto_alternativo_cod"])
table(train2_Voto_alternativo_cod$Voto_alternativo_cod)
ctrl
<- trainControl(method = "cv", number = 5)
# RF train with
CV to optimize number of variables
#library(doMC)
#registerDoMC(cores
= 2)
set.seed(0, sample.kind = "Rounding")
rfFit_Voto_alternativo_cod
<- train(Voto_alternativo_cod ~ .,
method = "rf",
data = train2_Voto_alternativo_cod,
preProcess = c("center", "scale"),
tuneGrid
= expand.grid(mtry = c(2:10)),
trControl
= ctrl)
rfFit_Voto_alternativo_cod
varImp(rfFit_Voto_alternativo_cod)
plot(varImp(rfFit_Voto_alternativo_cod), top = 10, col = "#74A9CF", main = "M1")
rfFit_Voto_alternativo_cod$finalModel
pred_Voto_alternativo_cod
<- predict(rfFit_Voto_alternativo_cod, test)
impu_Voto_alternativo_cod1
<- predict(rfFit_Voto_alternativo_cod, impu_Voto_alternativo_cod)
table(pred_Voto_alternativo_cod)
test_Voto_alternativo_cod
<- test$Voto_alternativo_cod[test$Voto_alternativo_cod!=99]
test_Voto_alternativo_cod
<- droplevels(test_Voto_alternativo_cod)
confusionMatrix(pred_Voto_alternativo_cod[test$Voto_alternativo_cod!=99],test_Voto_alternativo_cod)
CM1_Voto_alternativo_cod
<- confusionMatrix(pred_Voto_alternativo_cod[test$Voto_alternativo_cod!=99],test_Voto_alternativo_cod)$table
AC1_Voto_alternativo_cod
<- as.vector(confusionMatrix(pred_Voto_alternativo_cod[test$Voto_alternativo_cod!=99],test_Voto_alternativo_cod)$overall[1])
NA_Voto_alternativo_cod
<- as.numeric(rownames(test[test[,"Voto_alternativo_cod"]=='99',]))
pos =
c()
for(i in 1:nrow(test))
{
if(test[i,"Voto_alternativo_cod"]=="99")
{
pos=c(pos,i)
}
}
NA_Voto_alternativo_cod_impu
<- as.numeric(rownames(impu_Voto_alternativo_cod))
M1[NA_Voto_alternativo_cod,"Voto_alternativo_cod"]
<- pred_Voto_alternativo_cod[pos]
M1[NA_Voto_alternativo_cod_impu,"Voto_alternativo_cod"]
<- impu_Voto_alternativo_cod1
M = 2
set.seed(1, sample.kind = "Rounding")
rfFit2_Voto_alternativo_cod
<- train(Voto_alternativo_cod ~ .,
method = "rf",
data = train2_Voto_alternativo_cod,
preProcess = c("center", "scale"),
tuneGrid
= expand.grid(mtry = c(2:10)),
trControl
= ctrl)
rfFit2_Voto_alternativo_cod
varImp(rfFit2_Voto_alternativo_cod)
plot(varImp(rfFit2_Voto_alternativo_cod), top = 10, col = "#0570B0", main = "M2")
rfFit2_Voto_alternativo_cod$finalModel
pred2_Voto_alternativo_cod
<- predict(rfFit2_Voto_alternativo_cod,
test)
impu_Voto_alternativo_cod2
<- predict(rfFit2_Voto_alternativo_cod,
impu_Voto_alternativo_cod)
table(pred2_Voto_alternativo_cod)
confusionMatrix(pred2_Voto_alternativo_cod[test$Voto_alternativo_cod!=99],test_Voto_alternativo_cod)
CM2_Voto_alternativo_cod
<- confusionMatrix(pred2_Voto_alternativo_cod[test$Voto_alternativo_cod!=99],test_Voto_alternativo_cod)$table
AC2_Voto_alternativo_cod
<- as.vector(confusionMatrix(pred2_Voto_alternativo_cod[test$Voto_alternativo_cod!=99],test_Voto_alternativo_cod)$overall[1])
M2[NA_Voto_alternativo_cod,"Voto_alternativo_cod"]
<- pred2_Voto_alternativo_cod[pos]
M2[NA_Voto_alternativo_cod_impu,"Voto_alternativo_cod"]
<- impu_Voto_alternativo_cod2
M = 3
set.seed(2, sample.kind = "Rounding")
rfFit3_Voto_alternativo_cod
<- train(Voto_alternativo_cod ~ .,
method = "rf",
data = train2_Voto_alternativo_cod,
preProcess = c("center", "scale"),
tuneGrid =
expand.grid(mtry = c(2:10)),
trControl = ctrl)
print(rfFit3_Voto_alternativo_cod)
varImp(rfFit3_Voto_alternativo_cod)
plot(varImp(rfFit3_Voto_alternativo_cod), top = 10, col = "#41AE76", main = "M3")
rfFit3_Voto_alternativo_cod$finalModel
pred3_Voto_alternativo_cod
<- predict(rfFit3_Voto_alternativo_cod,
test)
impu_Voto_alternativo_cod3
<- predict(rfFit3_Voto_alternativo_cod,
impu_Voto_alternativo_cod)
table(pred3_Voto_alternativo_cod)
confusionMatrix(pred3_Voto_alternativo_cod[test$Voto_alternativo_cod!=99],test_Voto_alternativo_cod)
CM3_Voto_alternativo_cod
<- confusionMatrix(pred3_Voto_alternativo_cod[test$Voto_alternativo_cod!=99],test_Voto_alternativo_cod)$table
AC3_Voto_alternativo_cod
<- as.vector(confusionMatrix(pred3_Voto_alternativo_cod[test$Voto_alternativo_cod!=99],test_Voto_alternativo_cod)$overall[1])
M3[NA_Voto_alternativo_cod,"Voto_alternativo_cod"]
<- pred3_Voto_alternativo_cod[pos]
M3[NA_Voto_alternativo_cod_impu,"Voto_alternativo_cod"]
<- impu_Voto_alternativo_cod3
Matriz Confusión
CMT_Voto_alternativo_cod
<- (CM1_Voto_alternativo_cod)
for(i in 1:nrow(CMT_Voto_alternativo_cod))
{
for(j in 1:ncol(CMT_Voto_alternativo_cod))
{
if((CM1_Voto_alternativo_cod[i,j]+CM2_Voto_alternativo_cod[i,j]+CM3_Voto_alternativo_cod[i,j])%%3
!= 0)
{
CMT_Voto_alternativo_cod[i,j]
= as.character(round((CM1_Voto_alternativo_cod[i,j]+CM2_Voto_alternativo_cod[i,j]+CM3_Voto_alternativo_cod[i,j])/3,2))
}else{
CMT_Voto_alternativo_cod[i,j]
= as.character(as.integer((CM1_Voto_alternativo_cod[i,j]+CM2_Voto_alternativo_cod[i,j]+CM3_Voto_alternativo_cod[i,j])/3))
}
}
}
CMT_Voto_alternativo_cod
= cbind(c(1:11),
CMT_Voto_alternativo_cod)
kable(CMT_Voto_alternativo_cod,
position = "center",
booktabs = TRUE, align
= "cccccc", caption
= "<left><em> Matriz de confusión Intención de Voto
alternativo </em></center>", escape
= FALSE, col.names = c("Prediction",
"1","2","3",
"4", "5",
"6", "7",
"8", "9",
"10", "11"))%>%
kableExtra::footnote(symbol
= c("Al tomar la media de los elementos de las matrices de confusión,
es posible que no se
obtenga un número entero"), threeparttable=T)%>%
kable_classic(full_width = F, html_font = "Times
New Roman")%>%
add_header_above(c(" " = 1, "Reference" = 1, "
" = 10))%>%
column_spec(1:12,
width = "1.2cm")
ACT_Voto_alternativo_cod
<- c(AC1_Voto_alternativo_cod,AC2_Voto_alternativo_cod,AC3_Voto_alternativo_cod)
ACM_Voto_alternativo_cod
<- mean(c(ACT_Voto_alternativo_cod))
ACSD_Voto_alternativo_cod
<- sqrt(var(ACT_Voto_alternativo_cod)/3)
-
Precisión de los modelos
accuracies1
<- data.frame(c(round(ACM_Situ,3),
round(ACSD_Situ,3),
round(ACM_Estudios,3),
round(ACSD_Estudios,3),
round(ACM_civil_cod,3),
round(ACSD_civil_cod,3),
round(ACM_Participacion_cod,3),
round(ACSD_Participacion_cod,3),
round(ACM_Religion_cod,3),
round(ACSD_Religion_cod,3),
round(ACM_Situ_eco_cod,3),
round(ACSD_Situ_eco_cod,3),
round(ACM_Conf_presi_cod,3),
round(ACSD_Conf_presi_cod,3),
round(ACM_clase_cod,3),
round(ACSD_clase_cod,3),
round(ACM_Conf_opo_cod,3),
round(ACSD_Conf_opo_cod,3),
round(ACM_Valoracion_ps_cod,3),
round(ACSD_Valoracion_ps_cod,3),
round(ACM_Valoracion_pi_cod,3),
round(ACSD_Valoracion_pi_cod,3),
round(ACM_Simpatia_cod,3),
round(ACSD_Simpatia_cod,3),
round(ACM_Valoracion_pc_cod,3),
round(ACSD_Valoracion_pc_cod,3)))
for(i in 1:nrow(accuracies1))
{
if(i%%2
== 0)
{
accuracies1[i,1]
= paste0("(",accuracies1[i,1],")")
}
}
accuracies2
<- data.frame(c(round(ACM_Valoracion_sa_cod,3),
round(ACSD_Valoracion_sa_cod,3),
round(ACM_Valoracion_ia_cod,3),
round(ACSD_Valoracion_ia_cod,3),
round(ACM_Cercania_cod,3),
round(ACSD_Cercania_cod,3),
round(ACM_Pref_presi_cod,3),
round(ACSD_Pref_presi_cod,3),
round(ACM_Ideologia_cod,3),
round(ACSD_Ideologia_cod,3),
round(ACM_Ideologia_pc_cod,3),
round(ACSD_Ideologia_pc_cod,3),
round(ACM_Recuerdo_cod,3),
round(ACSD_Recuerdo_cod,3),
round(ACM_Ideologia_ps_cod,3),
round(ACSD_Ideologia_ps_cod,3),
round(ACM_Ideologia_sa_cod,3),
round(ACSD_Ideologia_sa_cod,3),
round(ACM_Ideologia_pi_cod,3),
round(ACSD_Ideologia_pi_cod,3),
round(ACM_Ideologia_ia_cod,3),
round(ACSD_Ideologia_ia_cod,3),
round(ACM_Voto_cod,3),
round(ACSD_Voto_cod,3),
round(ACM_Voto_alternativo_cod,3),
round(ACSD_Voto_alternativo_cod,3)))
for(i in 1:nrow(accuracies2))
{
if(i%%2
== 0)
{
accuracies2[i,1]
= paste0("(",accuracies2[i,1],")")
}
}
estimaciones_accuracies <-data.frame(C1 = c(rep("Situación
laboral",2), rep("Nivel
de Estudios",2), rep("Estado
civil",2), rep("Participación
anteriores elecciones",2), rep("Religión",2), rep("Valoración Situación económica",2), rep("Confianza
en el actual presidente",2), rep("Clase social",
2), rep("Confianza en el presidente de la
oposición",2), rep("Valoración
Pedro Sánchez",2), rep("Valoración Pablo Iglesias",2), rep("Simpatía
partidista",2), rep("Valoración
Pablo Casado",2)), C2 = accuracies1[,1], C3 = c(rep("Valoración
Santiago Abascal",2), rep("Valoración Inés Arrimadas",2), rep("Cercanía
partidista",2), rep("Preferencia
presidente del Gobierno",2), rep("Ideología",2), rep("Ideología Pablo Casado",2), rep("Recuerdo
de voto",2), rep("Ideología
Pedro Sánchez", 2), rep("Ideología Santiago Abascal",2), rep("Ideologia
Pablo Iglesias",2), rep("Ideología Inés Arrimadas",2), rep("Intención
de voto",2), rep("Voto
alternativo",2)), C4 = accuracies2[,1])
colnames(estimaciones_accuracies)<-NULL
kable(estimaciones_accuracies,
position = "center",
booktabs = TRUE, align = "cccc",
caption = "<left><em> Precisión de los
modelos </em></center>",
escape = FALSE, position = "center",
row_label_position
= "c",
font_size
= 15)
%>%
kable_classic(full_width
= F, html_font
= "Times New Roman")%>%
column_spec(c(1,3),
bold = T)
%>%
collapse_rows(columns
= 1:4,
valign = "middle")
-
Árbol de decisión para la
intención de voto
library(rpart.plot)
library(visNetwork)
library(sparkline)
library(maptree)
library(RColorBrewer)
rpart_Voto_cod
<- rpart(Voto_cod ~ .,
data = train2_Voto_cod,
control =
rpart.control(minsplit = 10))
my.palette
<- brewer.pal(name = "BuGn",
n =9)
par(family
= "serif")
rpart.plot(rpart_Voto_cod,
cex = 0.6,
extra = 104,
fallen.leaves
= FALSE, varlen
= 0, type
= 0, box.col
= my.palette)
rpart_Voto_cod <- rpart(Voto_cod ~ ., data
= train2_Voto_cod,
control =
rpart.control(minsplit = 20))
my.palette
<- brewer.pal(name = "PuBu",
n =9)
par(family
= "serif")
rpart.plot(rpart_Voto_cod,
cex = 0.6,
extra = 104,
fallen.leaves
= FALSE, varlen
= 0, type
= 0, box.col
= my.palette)
-
Árbol de decisión para la preferencia
como presidente del gobierno
rpart_Pref_presi_cod
<- rpart(Pref_presi_cod
~ ., data
= train2_Pref_presi_cod,
control =
rpart.control(minsplit = 50))
my.palette
<- brewer.pal(name = "Greens",
n =9)
par(family
= "serif")
rpart.plot(rpart_Pref_presi_cod,
cex = 0.6,
extra = 104,
fallen.leaves
= FALSE, varlen
= 0, type
= 0, box.col
= my.palette, font
= 1)
-
Árbol de decisión para la confianza como presidente del gobierno
rpart_Conf_presi_cod
<- rpart(Conf_presi_cod
~ ., data
= train2_Conf_presi_cod,
control =
rpart.control(minsplit = 9)
)
my.palette
<- brewer.pal(name = "BuGn",
n =9)
par(family
= "serif")
rpart.plot(rpart_Conf_presi_cod,
cex = 0.6,
extra = 104,
fallen.leaves
= FALSE, varlen
= 0, type
= 0, box.col
= my.palette)
-
Estimación de la intención de
voto
#PP
table(M1$Voto_cod)
m = 3
(prop_PP_M1
<- sum((M1$Voto_cod == "1")*(cis$PESO))/(3817 - sum(M1$Voto_cod == "10")))
(prop_PP_M2
<- sum((M2$Voto_cod == "1")*(cis$PESO))/(3817 - sum(M2$Voto_cod == "10")))
(prop_PP_M3
<- sum((M3$Voto_cod == "1")*(cis$PESO))/(3817 - sum(M3$Voto_cod == "10")))
(media_PP
<- round(sum(prop_PP_M1,prop_PP_M2,prop_PP_M3)/m,3))
(W_PP_M1
<- (prop_PP_M1*(1-prop_PP_M1))/(3817
- sum(M1$Voto_cod
== "10")))
(W_PP_M2
<- (prop_PP_M2*(1-prop_PP_M2))/(3817
- sum(M2$Voto_cod
== "10")))
(W_PP_M3
<- (prop_PP_M3*(1-prop_PP_M3))/(3817
- sum(M3$Voto_cod
== "10")))
(W_PP
<- sum(W_PP_M1,W_PP_M2,
W_PP_M3)/m)
(B_PP
= sum((prop_PP_M1-media_PP)^2,(prop_PP_M2-media_PP)^2,
(prop_PP_M3-media_PP)^2)/(m-1))
(SE_PP
= round(sqrt(W_PP+B_PP+(B_PP/m)),3))
#PSOE
(prop_PSOE_M1
<- sum((M1$Voto_cod == "2")*(cis$PESO))/(3817 - sum(M1$Voto_cod == "10")))
(prop_PSOE_M2
<- sum((M2$Voto_cod == "2")*(cis$PESO))/(3817 - sum(M2$Voto_cod == "10")))
(prop_PSOE_M3
<- sum((M3$Voto_cod == "2")*(cis$PESO))/(3817 - sum(M3$Voto_cod == "10")))
(media_PSOE
<- round(sum(prop_PSOE_M1,prop_PSOE_M2,prop_PSOE_M3)/m,4))
(W_PSOE_M1
<- (prop_PSOE_M1*(1-prop_PSOE_M1))/(3817
- sum(M1$Voto_cod
== "10")))
(W_PSOE_M2
<- (prop_PSOE_M2*(1-prop_PSOE_M2))/(3817
- sum(M2$Voto_cod
== "10")))
(W_PSOE_M3
<- (prop_PSOE_M3*(1-prop_PSOE_M3))/(3817
- sum(M3$Voto_cod
== "10")))
(W_PSOE
<- sum(W_PSOE_M1,W_PSOE_M2,
W_PSOE_M3)/m)
(B_PSOE
= sum((prop_PSOE_M1-media_PSOE)^2,(prop_PSOE_M2-media_PSOE)^2,
(prop_PSOE_M3-media_PSOE)^2)/(m-1))
(SE_PSOE
= round(sqrt(W_PSOE+B_PSOE+(B_PSOE/m)),3))
#PODEMOS
(prop_PODEMOS_M1
<- sum((M1$Voto_cod == "3")*(cis$PESO))/(3817 - sum(M1$Voto_cod == "10")))
(prop_PODEMOS_M2
<- sum((M2$Voto_cod == "3")*(cis$PESO))/(3817 - sum(M2$Voto_cod == "10")))
(prop_PODEMOS_M3
<- sum((M3$Voto_cod == "3")*(cis$PESO))/(3817 - sum(M3$Voto_cod == "10")))
(media_PODEMOS
<- round(sum(prop_PODEMOS_M1,prop_PODEMOS_M2,prop_PODEMOS_M3)/m,3))
(W_PODEMOS_M1
<- (prop_PODEMOS_M1*(1-prop_PODEMOS_M1))/(3817 - sum(M1$Voto_cod == "10")))
(W_PODEMOS_M2
<- (prop_PODEMOS_M2*(1-prop_PODEMOS_M2))/(3817 - sum(M2$Voto_cod == "10")))
(W_PODEMOS_M3
<- (prop_PODEMOS_M3*(1-prop_PODEMOS_M3))/(3817 - sum(M3$Voto_cod == "10")))
(W_PODEMOS
<- sum(W_PODEMOS_M1,W_PODEMOS_M2,
W_PODEMOS_M3)/m)
(B_PODEMOS
= sum((prop_PODEMOS_M1-media_PODEMOS)^2,(prop_PODEMOS_M2-media_PODEMOS)^2, (prop_PODEMOS_M3-media_PODEMOS)^2)/(m-1))
(SE_PODEMOS
= round(sqrt(W_PODEMOS+B_PODEMOS+(B_PODEMOS/m)),3))
#
CIUDADANOS
(prop_CS_M1
<- sum((M1$Voto_cod == "4")*(cis$PESO))/(3817 - sum(M1$Voto_cod == "10")))
(prop_CS_M2
<- sum((M2$Voto_cod == "4")*(cis$PESO))/(3817 - sum(M2$Voto_cod == "10")))
(prop_CS_M3
<- sum((M3$Voto_cod == "4")*(cis$PESO))/(3817 - sum(M3$Voto_cod == "10")))
(media_CS
<- round(sum(prop_CS_M1,prop_CS_M2,prop_CS_M3)/m,3))
(W_CS_M1
<- (prop_CS_M1*(1-prop_CS_M1))/(3817
- sum(M1$Voto_cod
== "10")))
(W_CS_M2
<- (prop_CS_M2*(1-prop_CS_M2))/(3817
- sum(M2$Voto_cod
== "10")))
(W_CS_M3
<- (prop_CS_M3*(1-prop_CS_M3))/(3817
- sum(M3$Voto_cod
== "10")))
(W_CS
<- sum(W_CS_M1,W_CS_M2,
W_CS_M3)/m)
(B_CS = sum((prop_CS_M1-media_CS)^2,(prop_CS_M2-media_CS)^2, (prop_CS_M3-media_CS)^2)/(m-1))
(SE_CS
= round(sqrt(W_CS+B_CS+(B_CS/m)),3))
#VOX
(prop_VOX_M1
<- sum((M1$Voto_cod == "5")*(cis$PESO))/(3817 - sum(M1$Voto_cod == "10")))
(prop_VOX_M2
<- sum((M2$Voto_cod == "5")*(cis$PESO))/(3817 - sum(M2$Voto_cod == "10")))
(prop_VOX_M3
<- sum((M3$Voto_cod == "5")*(cis$PESO))/(3817 - sum(M3$Voto_cod == "10")))
(media_VOX
<- round(sum(prop_VOX_M1,prop_VOX_M2,prop_VOX_M3)/m,3))
(W_VOX_M1 <- (prop_VOX_M1*(1-prop_VOX_M1))/(3817 - sum(M1$Voto_cod == "10")))
(W_VOX_M2 <- (prop_VOX_M2*(1-prop_VOX_M2))/(3817 - sum(M2$Voto_cod == "10")))
(W_VOX_M3 <- (prop_VOX_M3*(1-prop_VOX_M3))/(3817 - sum(M3$Voto_cod == "10")))
(W_VOX
<- sum(W_VOX_M1,W_VOX_M2,
W_VOX_M3)/m)
(B_VOX = sum((prop_VOX_M1-media_VOX)^2,(prop_VOX_M2-media_VOX)^2, (prop_VOX_M3-media_VOX)^2)/(m-1))
(SE_VOX
= round(sqrt(W_VOX+B_VOX+(B_VOX/m)),3))
#ERC
(prop_ERC_M1
<- sum((M1$Voto_cod == "6")*(cis$PESO))/(3817 - sum(M1$Voto_cod == "10")))
(prop_ERC_M2
<- sum((M2$Voto_cod == "6")*(cis$PESO))/(3817 - sum(M2$Voto_cod == "10")))
(prop_ERC_M3
<- sum((M3$Voto_cod == "6")*(cis$PESO))/(3817 - sum(M3$Voto_cod == "10")))
(media_ERC
<- round(sum(prop_ERC_M1,prop_ERC_M2,prop_ERC_M3)/m,3))
(W_ERC_M1
<- (prop_ERC_M1*(1-prop_ERC_M1))/(3817
- sum(M1$Voto_cod
== "10")))
(W_ERC_M2
<- (prop_ERC_M2*(1-prop_ERC_M2))/(3817
- sum(M2$Voto_cod
== "10")))
(W_ERC_M3
<- (prop_ERC_M3*(1-prop_ERC_M3))/(3817
- sum(M3$Voto_cod
== "10")))
(W_ERC
<- sum(W_ERC_M1,W_ERC_M2,
W_ERC_M3)/m)
(B_ERC = sum((prop_ERC_M1-media_ERC)^2,(prop_ERC_M2-media_ERC)^2, (prop_ERC_M3-media_ERC)^2)/(m-1))
(SE_ERC
= round(sqrt(W_ERC+B_ERC+(B_ERC/m)),3))
#JxCat
(prop_JxCat_M1
<- sum((M1$Voto_cod == "7")*(cis$PESO))/(3817 - sum(M1$Voto_cod == "10")))
(prop_JxCat_M2
<- sum((M2$Voto_cod == "7")*(cis$PESO))/(3817 - sum(M2$Voto_cod == "10")))
(prop_JxCat_M3
<- sum((M3$Voto_cod == "7")*(cis$PESO))/(3817 - sum(M3$Voto_cod == "10")))
(media_JxCat
<- round(sum(prop_JxCat_M1,prop_JxCat_M2,prop_JxCat_M3)/m,3))
(W_JxCat_M1
<- (prop_JxCat_M1*(1-prop_JxCat_M1))/(3817
- sum(M1$Voto_cod
== "10")))
(W_JxCat_M2
<- (prop_JxCat_M2*(1-prop_JxCat_M2))/(3817
- sum(M2$Voto_cod
== "10")))
(W_JxCat_M3
<- (prop_JxCat_M3*(1-prop_JxCat_M3))/(3817
- sum(M3$Voto_cod
== "10")))
(W_JxCat
<- sum(W_JxCat_M1,W_JxCat_M2,
W_JxCat_M3)/m)
(B_JxCat
= sum((prop_JxCat_M1-media_JxCat)^2,(prop_JxCat_M2-media_JxCat)^2,
(prop_JxCat_M3-media_JxCat)^2)/(m-1))
(SE_JxCat
= round(sqrt(W_JxCat+B_JxCat+(B_JxCat/m)),3))
#EAJ-PNV
(prop_PNV_M1
<- sum((M1$Voto_cod == "8")*(cis$PESO))/(3817 - sum(M1$Voto_cod == "10")))
(prop_PNV_M2
<- sum((M2$Voto_cod == "8")*(cis$PESO))/(3817 - sum(M2$Voto_cod == "10")))
(prop_PNV_M3
<- sum((M3$Voto_cod == "8")*(cis$PESO))/(3817 - sum(M3$Voto_cod == "10")))
(media_PNV
<- round(sum(prop_PNV_M1,prop_PNV_M2,prop_PNV_M3)/m,3))
(W_PNV_M1
<- (prop_PNV_M1*(1-prop_PNV_M1))/(3817
- sum(M1$Voto_cod
== "10")))
(W_PNV_M2
<- (prop_PNV_M2*(1-prop_PNV_M2))/(3817
- sum(M2$Voto_cod
== "10")))
(W_PNV_M3
<- (prop_PNV_M3*(1-prop_PNV_M3))/(3817
- sum(M3$Voto_cod
== "10")))
(W_PNV
<- sum(W_PNV_M1,W_PNV_M2,
W_PNV_M3)/m)
(B_PNV
= sum((prop_PNV_M1-media_PNV)^2,(prop_PNV_M2-media_PNV)^2,
(prop_PNV_M3-media_PNV)^2)/(m-1))
(SE_PNV
= round(sqrt(W_PNV+B_PNV+(B_PNV/m)),3))
#Otros
(prop_Otros_M1
<- sum((M1$Voto_cod == "9")*(cis$PESO))/(3817 - sum(M1$Voto_cod == "10")))
(prop_Otros_M2
<- sum((M2$Voto_cod == "9")*(cis$PESO))/(3817 - sum(M2$Voto_cod == "10")))
(prop_Otros_M3
<- sum((M3$Voto_cod == "9")*(cis$PESO))/(3817 - sum(M3$Voto_cod == "10")))
(media_Otros
<- round(sum(prop_Otros_M1,prop_Otros_M2,prop_Otros_M3)/m,3))
(W_Otros_M1
<- (prop_Otros_M1*(1-prop_Otros_M1))/(3817 - sum(M1$Voto_cod == "10")))
(W_Otros_M2
<- (prop_Otros_M2*(1-prop_Otros_M2))/(3817 - sum(M2$Voto_cod == "10")))
(W_Otros_M3
<- (prop_Otros_M3*(1-prop_Otros_M3))/(3817 - sum(M3$Voto_cod == "10")))
(W_Otros <- sum(W_Otros_M1,W_Otros_M2,
W_Otros_M3)/m)
(B_Otros = sum((prop_Otros_M1-media_Otros)^2,(prop_Otros_M2-media_Otros)^2, (prop_Otros_M3-media_Otros)^2)/(m-1))
(SE_Otros = round(sqrt(W_Otros+B_Otros+(B_Otros/m)),3))
media_PSOE <- media_PSOE*100
media_PP <- media_PP*100
media_PODEMOS <- media_PODEMOS*100
media_CS <- media_CS*100
media_VOX <- media_VOX*100
media_ERC <- media_ERC*100
media_JxCat <- media_JxCat*100
media_PNV <- media_PNV*100
media_Otros <- media_Otros*100
estimaciones_votos <- data.frame(c(media_PSOE, as.character(SE_PSOE), media_PP, as.character(SE_PP), media_PODEMOS, as.character(SE_PODEMOS), media_CS, as.character(SE_CS), media_VOX, as.character(SE_VOX), media_ERC, as.character(SE_ERC), media_JxCat, as.character(SE_JxCat), media_PNV, as.character(SE_PNV), media_Otros, as.character(SE_Otros)), stringsAsFactors=FALSE)
estimaciones_votos
for(i in 1:nrow(estimaciones_votos))
{
if(i%%2 == 0)
{
estimaciones_votos[i,1] = paste0("(",estimaciones_votos[i,1],")")
}else{
estimaciones_votos[i,1] = estimaciones_votos[i,1]
}
}
estimaciones_votos2 <-data.frame(C1 = c(rep("PSOE",2), rep("PP",2), rep("Unidas
Podemos",2), rep("Ciudadanos",2), rep("VOX",2), rep("ERC",2), rep("JxCat",2), rep("EAJ-PNV", 2), rep("Otros",2)), C2 = estimaciones_votos[,1])
colnames(estimaciones_votos2)<-NULL
kable(estimaciones_votos2,
position = "center",
booktabs = TRUE, align = "cc",
caption = "<left><em> Estimación de voto en
% sobre voto válido </em></center>",
escape = FALSE, position = "center",
row_label_position
= "c")
%>%
kable_classic(full_width
= F, html_font
= "Times New Roman")%>%
column_spec(1,
bold = T)
%>%
collapse_rows(columns
= 1:2,
valign = "middle")%>%
column_spec(c(1),
width = "3cm")
#Compración
con el CIS
comparacion_est <- data.frame(c(media_PSOE, media_PP, media_VOX, media_PODEMOS, media_CS, media_ERC, media_JxCat, media_PNV, media_Otros))
comparacion_CIS <- data.frame(c("29.5", "19.2", "14.0", "10.8", "10.5", "2.9", "1.7", "1.4", "10"))
voto_CIS <- data.frame(c("19.4", "11.8", "7", "7.1", "7.5", "1.6", "0.9", "0.9", "0.9", "1.1", "1.6", "0.4", "0.2", "0.2", "0.5", "0.1", "0.7", "4.5", "1.3", "11.5", "16.8", "4"))
voto_CIS_est <- data.frame(c("29.5", "19.2", "14.0", "10.8", "10.5", "2.9", "1.7", "1.4", "1.2", "1.2", "2.4", "0.8", "0.5", "0.4", "0.5", "0.1","0.9", "2"))
nombres_CIS <- data.frame(c("PSOE", "PP", "VOX", "Unidas
Podemos", "Ciudadanos", "ERC", "JxCat", "EAJ-PNV", "Otros", "EH Bildu", "Más
País/Compromís","CUP",
"CCa-NC",
"NA+",
"BNG",
"PRC",
"PACMA",
"En blanco",
"Voto nulo",
"Abstención",
"NS",
"NC"))
library(zoo)
tabla_total_est <- data.frame(nombres_CIS, cbind(zoo(, 1:nrow(nombres_CIS)), as.zoo(voto_CIS)))
tabla_total_est1 <- data.frame(tabla_total_est, cbind(zoo(, 1:nrow(tabla_total_est)), as.zoo(voto_CIS_est)))
tabla_total_est2 <- data.frame(tabla_total_est1, cbind(zoo(, 1:nrow(tabla_total_est1)), as.zoo(comparacion_CIS)))
tabla_total_est3 <- data.frame(tabla_total_est2, cbind(zoo(, 1:nrow(tabla_total_est2)), as.zoo(comparacion_est)))
colnames(tabla_total_est3)<-
NULL
options(knitr.kable.NA
= '')
kable(tabla_total_est3,
position = "center",
booktabs = TRUE, align = "cc",
caption = "<left><em> Comparación de los
resultados CIS </em></center>",
col.names
= c(" ",
"Voto directo en la escuesta (en % sobre
censo)", "Estimación
de voto CIS (en % sobre el voto válido)",
"Agrupación estimación de voto CIS", "Esimación de voto
Imputación múltiple"), escape = FALSE, position = "center",
row_label_position
= "c")
%>%
kable_classic(full_width
= F, html_font
= "Times New Roman")%>%
column_spec(1,
bold = T)
%>%
column_spec(c(1),
width = "0.5cm")